correction responsive + ajout vrais stats

profile
Othmane BENJELLOUN 1 year ago
parent f37e74f6b7
commit adf957257c

@ -13,8 +13,8 @@ class ContainerStats extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
height: 110, height: 100,
width: 110, width: 100,
padding: const EdgeInsets.all(8), padding: const EdgeInsets.all(8),
margin: const EdgeInsets.symmetric(vertical: 5), margin: const EdgeInsets.symmetric(vertical: 5),
decoration: BoxDecoration( decoration: BoxDecoration(

@ -5,6 +5,7 @@ import 'package:smartfit_app_mobile/common_widget/container/container_stats.dart
class LigneContainerStats extends StatelessWidget { class LigneContainerStats extends StatelessWidget {
const LigneContainerStats(this.value1, this.value2, this.value3, const LigneContainerStats(this.value1, this.value2, this.value3,
this.designation1, this.designation2, this.designation3, this.designation1, this.designation2, this.designation3,
this.icon1, this.icon2, this.icon3,
{Key? key}) {Key? key})
: super(key: key); : super(key: key);
@ -16,6 +17,11 @@ class LigneContainerStats extends StatelessWidget {
final String designation2; final String designation2;
final String designation3; final String designation3;
final IconData icon1;
final IconData icon2;
final IconData icon3;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Column( return Column(
@ -44,17 +50,17 @@ class LigneContainerStats extends StatelessWidget {
), ),
SizedBox(height: 20), SizedBox(height: 20),
SingleChildScrollView(
Row( scrollDirection: Axis.horizontal,
child:Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
const SizedBox(width: 25), ContainerStats(value1, designation1, icon1),
ContainerStats(value1, designation1, Icons.timer ), const SizedBox(width: 20),
const SizedBox(width: 25), ContainerStats(value2, designation2, icon2),
ContainerStats(value2, designation2, Icons.favorite_outline), const SizedBox(width: 20),
const SizedBox(width: 25), ContainerStats(value3, designation3, icon3),
ContainerStats(value3, designation3, Icons.bolt), ],)
],
), ),
Divider(height: 30), Divider(height: 30),
], ],

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

@ -45,7 +45,7 @@ class Stats extends StatelessWidget {
scrollDirection: Axis.horizontal, scrollDirection: Axis.horizontal,
child: Row( child: Row(
children: [ children: [
const SizedBox(width: 30), const SizedBox(width: 15),
InfoStat( InfoStat(
icon: Icons.timer, icon: Icons.timer,
iconColor: Color.fromARGB(255, 255, 255, 255), iconColor: Color.fromARGB(255, 255, 255, 255),

@ -97,6 +97,32 @@ class ActivityOfUser {
return "null"; 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() { String getTotalCalorie() {
for (int i = 0; i < _contentActivity[_dataSession].length; i++) { for (int i = 0; i < _contentActivity[_dataSession].length; i++) {
if (_contentActivity[_dataSession][i] == "total_calories") { if (_contentActivity[_dataSession][i] == "total_calories") {

@ -2,7 +2,7 @@ import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'dart:html' as html; // Importation des fonctionnalités HTML import 'package:universal_html/html.dart' as html;
import 'package:crypto/crypto.dart'; import 'package:crypto/crypto.dart';
import 'package:file_picker/file_picker.dart'; import 'package:file_picker/file_picker.dart';

@ -52,7 +52,7 @@ class _MobileHomeView extends State<MobileHomeView> {
SizedBox( SizedBox(
height: media.width * 0.05, height: media.width * 0.05,
), ),
const LigneContainerStats("1", "2", "3", "s", "s", "s"), const LigneContainerStats("1", "2", "3", "Minimum", "Maximum", "Moyenne", Icons.trending_down,Icons.trending_up,Icons.favorite_outline ),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
@ -72,7 +72,7 @@ class _MobileHomeView extends State<MobileHomeView> {
SizedBox( SizedBox(
height: media.width * 0.05, height: media.width * 0.05,
), ),
const LigneContainerStats("1", "2", "3", "s", "s", "s"), const LigneContainerStats("1", "2", "3", "Minimum", "Maximum", "Moyenne", Icons.trending_down,Icons.trending_up,Icons.favorite_outline ),
Container( Container(
padding: const EdgeInsets.only(left: 15), padding: const EdgeInsets.only(left: 15),
height: media.width * 0.5, height: media.width * 0.5,

@ -1,10 +1,12 @@
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_widget/container/ligne_container_stats.dart'; import 'package:smartfit_app_mobile/common_widget/container/ligne_container_stats.dart';
import 'package:smartfit_app_mobile/common_widget/graph/bpm_and_speed_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/graph/bpm_by_time.dart';
import 'package:smartfit_app_mobile/common_widget/other/entete_home_view.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/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/data_home_view.dart';
import 'package:smartfit_app_mobile/modele/utile/home_view/home_view_util.dart'; import 'package:smartfit_app_mobile/modele/utile/home_view/home_view_util.dart';
@ -19,9 +21,13 @@ class _WebHomeView extends State<WebHomeView> {
late DataHomeView data; late DataHomeView data;
TextEditingController bpmController = TextEditingController(); TextEditingController bpmController = TextEditingController();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var media = MediaQuery.of(context).size; 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); data = HomeViewUtil().initData(context);
@ -55,7 +61,8 @@ class _WebHomeView extends State<WebHomeView> {
SizedBox( SizedBox(
height: media.width * 0.05, height: media.width * 0.05,
), ),
const LigneContainerStats("30 s", "90 BPM", "290 kCal", "Temps", "Heart rate", "Calories"),
LigneContainerStats(maxBpm+ " BPM",minBpm+ " BPM" ,avgBpm+ " BPM", "Minimum", "Maximum", "Moyenne", Icons.trending_down,Icons.trending_up,Icons.favorite_outline),
SizedBox( SizedBox(
height: media.width * 0.05, height: media.width * 0.05,
), ),
@ -78,7 +85,8 @@ class _WebHomeView extends State<WebHomeView> {
SizedBox( SizedBox(
height: media.width * 0.05, height: media.width * 0.05,
), ),
const LigneContainerStats("30 s", "90 BPM", "290 kCal", "Temps", "Heart rate", "Calories"), const LigneContainerStats("30 BPM", "90 BPM", "290 BPM", "Minimum", "Maximum", "Moyenne", Icons.trending_down,Icons.trending_up,Icons.favorite_outline),
SizedBox( SizedBox(
height: media.width * 0.05, height: media.width * 0.05,
), ),

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

Loading…
Cancel
Save