Merge branch 'othmane3' into Enzo

profile
Enzo 1 year ago
commit 84f798dc89

@ -1,17 +1,20 @@
import 'package:flutter/material.dart';
import 'package:smartfit_app_mobile/common/colo_extension.dart';
import 'package:smartfit_app_mobile/common_widget/stats.dart';
class ContainerStats extends StatelessWidget {
const ContainerStats(this.value, this.designation, {Key? key})
const ContainerStats(this.value, this.designation, this.icon, {Key? key})
: super(key: key);
final String value;
final String designation;
final IconData icon;
@override
Widget build(BuildContext context) {
return Container(
height: 110,
width: 110,
height: 100,
width: 100,
padding: const EdgeInsets.all(8),
margin: const EdgeInsets.symmetric(vertical: 5),
decoration: BoxDecoration(
@ -29,6 +32,11 @@ class ContainerStats extends StatelessWidget {
]),
child: Stack(
children: [
StatIcon(
icon: icon,
iconColor: TColor.white,
iconBackground: TColor.secondaryColor1,
),
Align(
alignment: Alignment.bottomLeft,
child: Column(

@ -1,9 +1,11 @@
import 'package:flutter/material.dart';
import 'package:smartfit_app_mobile/common/colo_extension.dart';
import 'package:smartfit_app_mobile/common_widget/container/container_stats.dart';
class LigneContainerStats extends StatelessWidget {
const LigneContainerStats(this.value1, this.value2, this.value3,
this.designation1, this.designation2, this.designation3,
this.icon1, this.icon2, this.icon3,
{Key? key})
: super(key: key);
@ -15,17 +17,55 @@ class LigneContainerStats extends StatelessWidget {
final String designation2;
final String designation3;
final IconData icon1;
final IconData icon2;
final IconData icon3;
@override
Widget build(BuildContext context) {
return Row(
return Column(
children: [
Divider(height: 30),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 30),
child: Row(
children: [
const Text(
'Statistiques',
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w800,
),
),
SizedBox(width: 8),
Icon(
Icons.pie_chart_rounded,
size: 15,
color: TColor.secondaryColor1,
),
],
),
),
SizedBox(height: 20),
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child:Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ContainerStats(value1, designation1, icon1),
const SizedBox(width: 20),
ContainerStats(value1, designation1),
const SizedBox(width: 20),
ContainerStats(value2, designation2),
ContainerStats(value2, designation2, icon2),
const SizedBox(width: 20),
ContainerStats(value3, designation3),
ContainerStats(value3, designation3, icon3),
],)
),
Divider(height: 30),
],
);
}
}

@ -80,7 +80,7 @@ class _GraphBpmByTime extends State<GraphBpmByTime> {
return ClipRRect(
borderRadius: BorderRadius.circular(25),
child: Container(
height: media.width * 0.2,
height: media.height * 0.3,
width: double.maxFinite,
decoration: BoxDecoration(
color: TColor.primaryColor2.withOpacity(0.3),

@ -45,7 +45,7 @@ class Stats extends StatelessWidget {
scrollDirection: Axis.horizontal,
child: Row(
children: [
const SizedBox(width: 30),
const SizedBox(width: 15),
InfoStat(
icon: Icons.timer,
iconColor: Color.fromARGB(255, 255, 255, 255),
@ -126,7 +126,6 @@ class InfoStat extends StatelessWidget {
iconColor: iconColor,
iconBackground: iconBackground,
),
Change(time: time),
Align(
alignment: Alignment.bottomLeft,
child: Column(
@ -153,35 +152,7 @@ class InfoStat extends StatelessWidget {
}
}
class Change extends StatelessWidget {
const Change({
Key? key,
required this.time,
}) : super(key: key);
final String time;
@override
Widget build(BuildContext context) {
return Align(
alignment: Alignment.topRight,
child: Container(
padding: const EdgeInsets.symmetric(
vertical: 1,
horizontal: 4,
),
decoration: BoxDecoration(
color: Colors.green,
borderRadius: BorderRadius.circular(500),
),
child: Text(
time,
style: const TextStyle(fontSize: 10, color: Colors.white),
),
),
);
}
}
class StatIcon extends StatelessWidget {
const StatIcon({

@ -97,6 +97,32 @@ class ActivityOfUser {
return "null";
}
String getMaxBpm() {
for (int i = 0; i < _contentActivity[_dataSession].length; i++) {
if (_contentActivity[_dataSession][i] == "max_heart_rate") {
return _contentActivity[_dataSession][i + 1].toString();
}
}
return "null";
}
String getMinBpm() {
for (int i = 0; i < _contentActivity[_dataSession].length; i++) {
if (_contentActivity[_dataSession][i] == "min_heart_rate") {
return _contentActivity[_dataSession][i + 1].toString();
}
}
return "null";
}
String getAvgBpm() {
for (int i = 0; i < _contentActivity[_dataSession].length; i++) {
if (_contentActivity[_dataSession][i] == "avg_heart_rate") {
return _contentActivity[_dataSession][i + 1].toString();
}
}
return "null";
}
String getTotalCalorie() {
for (int i = 0; i < _contentActivity[_dataSession].length; i++) {
if (_contentActivity[_dataSession][i] == "total_calories") {

@ -2,6 +2,7 @@ import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:universal_html/html.dart' as html;
import 'package:crypto/crypto.dart';
import 'package:file_picker/file_picker.dart';

@ -1,11 +1,13 @@
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/common_widget/container/ligne_container_stats.dart';
import 'package:smartfit_app_mobile/common_widget/graph/altitude_by_time.dart';
import 'package:smartfit_app_mobile/common_widget/graph/bpm_and_speed_by_time.dart';
import 'package:smartfit_app_mobile/common_widget/graph/bpm_by_time.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';
import 'package:smartfit_app_mobile/modele/utile/home_view/home_view_util.dart';
@ -23,7 +25,9 @@ class _MobileHomeView extends State<MobileHomeView> {
@override
Widget build(BuildContext context) {
var media = MediaQuery.of(context).size;
String maxBpm = context.watch<User>().listActivity[0].getMaxBpm();
String minBpm = context.watch<User>().listActivity[0].getMinBpm();
String avgBpm = context.watch<User>().listActivity[0].getAvgBpm();
data = HomeViewUtil().initData(context);
return Scaffold(
@ -53,7 +57,16 @@ class _MobileHomeView extends State<MobileHomeView> {
SizedBox(
height: media.width * 0.05,
),
const LigneContainerStats("1", "2", "3", "s", "s", "s"),
LigneContainerStats(
minBpm + " BPM",
maxBpm + " BPM",
avgBpm + " BPM",
"Minimum",
"Maximum",
"Moyenne",
Icons.trending_down,
Icons.trending_up,
Icons.favorite_outline),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [

@ -1,11 +1,13 @@
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/common_widget/container/ligne_container_stats.dart';
import 'package:smartfit_app_mobile/common_widget/graph/altitude_by_time.dart';
import 'package:smartfit_app_mobile/common_widget/graph/bpm_and_speed_by_time.dart';
import 'package:smartfit_app_mobile/common_widget/graph/bpm_by_time.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';
import 'package:smartfit_app_mobile/modele/utile/home_view/home_view_util.dart';
@ -20,12 +22,16 @@ class _WebHomeView extends State<WebHomeView> {
late DataHomeView data;
TextEditingController bpmController = TextEditingController();
@override
Widget build(BuildContext context) {
var media = MediaQuery.of(context).size;
String maxBpm = context.watch<User>().listActivity[0].getMaxBpm();
String minBpm = context.watch<User>().listActivity[0].getMinBpm();
String avgBpm = context.watch<User>().listActivity[0].getAvgBpm();
data = HomeViewUtil().initData(context);
return Scaffold(
backgroundColor: TColor.white,
body: SingleChildScrollView(
@ -56,7 +62,8 @@ class _WebHomeView extends State<WebHomeView> {
SizedBox(
height: media.width * 0.05,
),
const LigneContainerStats("1", "2", "3", "s", "s", "s"),
LigneContainerStats(minBpm+ " BPM",maxBpm+ " BPM" ,avgBpm+ " BPM", "Minimum", "Maximum", "Moyenne", Icons.trending_down,Icons.trending_up,Icons.favorite_outline),
SizedBox(
height: media.width * 0.05,
),
@ -79,7 +86,8 @@ class _WebHomeView extends State<WebHomeView> {
SizedBox(
height: media.width * 0.05,
),
const LigneContainerStats("1", "2", "3", "s", "s", "s"),
const LigneContainerStats("30 BPM", "90 BPM", "290 BPM", "Minimum", "Maximum", "Moyenne", Icons.trending_down,Icons.trending_up,Icons.favorite_outline),
SizedBox(
height: media.width * 0.05,
),

@ -264,7 +264,7 @@ class _MobileHomeView extends State<MobileHomeView> {
title: "Voir",
type: RoundButtonType.bgGradient,
fontSize: 12,
fontWeight: FontWeight.w400,
fontWeight: FontWeight.w0,
onPressed: () {
Navigator.push(
context,

@ -55,6 +55,7 @@ dependencies:
tuple: ^2.0.2
crypto: ^3.0.3
responsive_builder: ^0.7.0
universal_html: ^2.2.4
dev_dependencies:
flutter_test:

Loading…
Cancel
Save