page volume finis

pull/4/head^2
Enzo 1 year ago
parent 8e658555cc
commit a3e77c3759

@ -1,39 +1,45 @@
import 'package:flutter/material.dart';
import 'package:smartfit_app_mobile/common_widget/container/container_stats_activities.dart';
class VolumesList extends StatefulWidget {
const VolumesList({Key? key}) : super(key: key);
class VolumesList extends StatelessWidget {
final Map<String, dynamic> volume;
@override
State<VolumesList> createState() => _VolumesList();
}
class _VolumesList extends State<VolumesList> {
const VolumesList({super.key, required this.volume});
@override
Widget build(BuildContext context) {
var media = MediaQuery.of(context).size;
if (volume["nbActivity"] == 0) {
return const Text("Aucune activité ces x jours/mois/années");
}
return SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ContainerStatsActivities("??", "Nombre Activitée(s)", Icons.numbers),
ContainerStatsActivities(volume["nbActivity"].toString(),
"Nombre Activitée(s)", Icons.numbers),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities("?? s", "Temps Total", Icons.timer),
ContainerStatsActivities(
volume["durationActiviy"].toString(), "Temps Total", Icons.timer),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities("?? BPM", "Bpm Moyens", Icons.favorite),
ContainerStatsActivities(
volume["bpmAvg"].toString(), "Bpm Moyens", Icons.favorite),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities("?? m/s", "Vitesse Moyenne", Icons.bolt),
ContainerStatsActivities(
volume["speedAvg"].toString(), "Vitesse Moyenne", Icons.bolt),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities("?? + m", "Dénivelé Positif", Icons.hiking),
ContainerStatsActivities(volume["denivelePositif"].toString(),
"Dénivelé Positif", Icons.hiking),
],
),
);

@ -107,7 +107,10 @@ class ManagerSelectedActivity {
for (ActivityOfUser activityOfUser in activitySelected) {
somme += activityOfUser.activityInfo.bpmAvg;
}
return somme ~/ activitySelected.length;
if (somme != 0) {
return somme ~/ activitySelected.length;
}
return somme;
}
// ------------------ Fin BPM ------------------- //

@ -70,17 +70,17 @@ class User extends ChangeNotifier {
return _getVolume(listActivity);
}
Map<String, dynamic> _getVolume(List<ActivityOfUser> listeActivity) {
Map<String, dynamic> _getVolume(List<ActivityOfUser> list) {
Map<String, dynamic> map = {};
ManagerSelectedActivity managerSelectedActivity = ManagerSelectedActivity();
managerSelectedActivity.activitySelected = listActivity;
ManagerSelectedActivity selected = ManagerSelectedActivity();
selected.activitySelected = list;
map["nbActovity"] = managerSelectedActivity.activitySelected.length;
managerSelectedActivity.getTimeAllActivitySelected();
map["bpmAvg"] = managerSelectedActivity.getBpmAvgAllActivitieSelected();
map["nbActivity"] = selected.activitySelected.length;
map["bpmAvg"] = selected.getBpmAvgAllActivitieSelected();
map["denivelePositif"] =
managerSelectedActivity.getTotalDenivelePositifAllActivitySelected();
map["speedAvg"] = managerSelectedActivity.getAvgSpeedAllActivitySelected();
selected.getTotalDenivelePositifAllActivitySelected();
map["speedAvg"] = selected.getAvgSpeedAllActivitySelected();
map["durationActiviy"] = selected.getTimeAllActivitySelected();
return map;
}
}

@ -5,9 +5,8 @@ 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';
import 'package:smartfit_app_mobile/view/home/stats_activities_view.dart';
import 'package:smartfit_app_mobile/view/home/volumes_view.dart';
import 'package:smartfit_app_mobile/view/volumes/volumes_view.dart';
import 'package:smartfit_app_mobile/view/home/web/web_homeview.dart';
import 'package:units_converter/units_converter.dart';
class HomeView extends StatefulWidget {
const HomeView({super.key});
@ -28,7 +27,7 @@ class _HomeViewState extends State<HomeView> {
desktop: (_) => const WebHomeView(),
)
: selectedActivitiesCount > 1
? const Volumes()
? const StatAtivities()
: ScreenTypeLayout.builder(
mobile: (_) =>
const NoActivityView("Pas d'activité sélectionnée"),

@ -1,222 +0,0 @@
import 'package:flutter/material.dart';
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/user.dart';
import 'package:smartfit_app_mobile/modele/utile/home_view/data_home_view.dart';
class Volumes extends StatefulWidget {
const Volumes({super.key});
@override
State<Volumes> createState() => _Volumes();
}
class _Volumes extends State<Volumes> {
late DataHomeView data;
TextEditingController bpmController = TextEditingController();
@override
Widget build(BuildContext context) {
var media = MediaQuery.of(context).size;
User user = context.watch<User>();
Map<String, dynamic> volume7Days =
user.getVolumeWhithDuration(const Duration(days: 7));
Map<String, dynamic> volume1Months =
user.getVolumeWhithDuration(const Duration(days: 30));
Map<String, dynamic> volume1Year =
user.getVolumeWhithDuration(const Duration(days: 366));
Map<String, dynamic> volumeAllTime = user.getVolumeAllTime();
return Scaffold(
backgroundColor: TColor.white,
body: SingleChildScrollView(
child: SafeArea(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 15),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
height: media.width * 0.03,
),
const EnteteHomeView(),
SizedBox(
height: media.width * 0.05,
),
Text(
"Derniere semaine",
style: TextStyle(
color: TColor.black,
fontSize: 16,
fontWeight: FontWeight.w700),
),
SizedBox(
height: media.width * 0.03,
),
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ContainerStatsActivities(
"??", "Nombre Activitée(s)", Icons.numbers),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities(
"?? s", "Temps Total", Icons.timer),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities(
"?? BPM", "Bpm Moyens", Icons.favorite),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities(
"?? m/s", "Vitesse Moyenne", Icons.bolt),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities(
"?? + m", "Dénivelé Positif", Icons.hiking),
],
),
),
SizedBox(
height: media.width * 0.03,
),
Text(
"Dernier Mois",
style: TextStyle(
color: TColor.black,
fontSize: 16,
fontWeight: FontWeight.w700),
),
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ContainerStatsActivities(
"??", "Nombre Activitée(s)", Icons.numbers),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities(
"?? s", "Temps Total", Icons.timer),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities(
"?? BPM", "Bpm Moyens", Icons.favorite),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities(
"?? m/s", "Vitesse Moyenne", Icons.bolt),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities(
"?? + m", "Dénivelé Positif", Icons.hiking),
],
),
),
SizedBox(
height: media.width * 0.03,
),
Text(
"Dernière année",
style: TextStyle(
color: TColor.black,
fontSize: 16,
fontWeight: FontWeight.w700),
),
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ContainerStatsActivities(
"??", "Nombre Activitée(s)", Icons.numbers),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities(
"?? s", "Temps Total", Icons.timer),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities(
"?? BPM", "Bpm Moyens", Icons.favorite),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities(
"?? m/s", "Vitesse Moyenne", Icons.bolt),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities(
"?? + m", "Dénivelé Positif", Icons.hiking),
],
),
),
SizedBox(
height: media.width * 0.03,
),
Text(
"Total",
style: TextStyle(
color: TColor.black,
fontSize: 16,
fontWeight: FontWeight.w700),
),
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ContainerStatsActivities(
"??", "Nombre Activitée(s)", Icons.numbers),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities(
"?? s", "Temps Total", Icons.timer),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities(
"?? BPM", "Bpm Moyens", Icons.favorite),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities(
"?? m/s", "Vitesse Moyenne", Icons.bolt),
SizedBox(
width: media.width * 0.03,
),
ContainerStatsActivities(
"?? + m", "Dénivelé Positif", Icons.hiking),
],
),
),
SizedBox(
height: media.width * 0.03,
),
],
),
),
),
),
);
}
}
// nombre activité / durée totale/ bpm moyens / denivelé positif / vitesse moyenne

@ -6,6 +6,7 @@ import 'package:smartfit_app_mobile/view/home/home_view.dart';
import 'package:flutter/material.dart';
import 'package:smartfit_app_mobile/view/map/my_map.dart';
import 'package:smartfit_app_mobile/view/profile/profile_view.dart';
import 'package:smartfit_app_mobile/view/volumes/volumes_view.dart';
class MobileMainTabView extends StatefulWidget {
const MobileMainTabView({super.key});
@ -88,15 +89,26 @@ class _MobileMainTabViewState extends State<MobileMainTabView> {
setState(() {});
}
}),
TabButton(
icon: "assets/img/Activity_tab.svg",
selectIcon: "assets/img/Activity_tab_select.svg",
isActive: selectTab == 2,
onTap: () {
selectTab = 2;
currentTab = const VolumesView();
if (mounted) {
setState(() {});
}
}),
const SizedBox(
width: 40,
),
TabButton(
icon: "assets/img/mapIcon.svg",
selectIcon: "assets/img/mapIcon_selected.svg",
isActive: selectTab == 2,
isActive: selectTab == 3,
onTap: () {
selectTab = 2;
selectTab = 3;
currentTab = const MyMap();
if (mounted) {
setState(() {});
@ -105,9 +117,9 @@ class _MobileMainTabViewState extends State<MobileMainTabView> {
TabButton(
icon: "assets/img/Profile_tab.svg",
selectIcon: "assets/img/Profile_tab_select.svg",
isActive: selectTab == 3,
isActive: selectTab == 4,
onTap: () {
selectTab = 3;
selectTab = 4;
currentTab = const ProfileView();
if (mounted) {
setState(() {});

@ -0,0 +1,103 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/common_widget/container/list/volumes_list.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/user.dart';
import 'package:smartfit_app_mobile/modele/utile/home_view/data_home_view.dart';
class VolumesView extends StatefulWidget {
const VolumesView({super.key});
@override
State<VolumesView> createState() => _VolumesViews();
}
class _VolumesViews extends State<VolumesView> {
late DataHomeView data;
TextEditingController bpmController = TextEditingController();
@override
Widget build(BuildContext context) {
var media = MediaQuery.of(context).size;
User user = context.watch<User>();
Map<String, dynamic> volume7Days =
user.getVolumeWhithDuration(const Duration(days: 7));
Map<String, dynamic> volume1Months =
user.getVolumeWhithDuration(const Duration(days: 30));
Map<String, dynamic> volume1Year =
user.getVolumeWhithDuration(const Duration(days: 366));
Map<String, dynamic> volumeAllTime = user.getVolumeAllTime();
return Scaffold(
backgroundColor: TColor.white,
body: SingleChildScrollView(
child: SafeArea(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 15),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
height: media.width * 0.03,
),
const EnteteHomeView(),
SizedBox(
height: media.width * 0.05,
),
Text(
"Derniere semaine",
style: TextStyle(
color: TColor.black,
fontSize: 16,
fontWeight: FontWeight.w700),
),
SizedBox(
height: media.width * 0.03,
),
VolumesList(volume: volume7Days),
SizedBox(
height: media.width * 0.03,
),
Text(
"Dernier Mois",
style: TextStyle(
color: TColor.black,
fontSize: 16,
fontWeight: FontWeight.w700),
),
VolumesList(volume: volume1Months),
SizedBox(
height: media.width * 0.03,
),
Text(
"Dernière année",
style: TextStyle(
color: TColor.black,
fontSize: 16,
fontWeight: FontWeight.w700),
),
VolumesList(volume: volume1Year),
SizedBox(
height: media.width * 0.03,
),
Text(
"Total",
style: TextStyle(
color: TColor.black,
fontSize: 16,
fontWeight: FontWeight.w700),
),
VolumesList(volume: volumeAllTime),
SizedBox(
height: media.width * 0.03,
),
],
),
),
),
),
);
}
}
Loading…
Cancel
Save