correction responsive + ajout vrais stats

profile
Othmane BENJELLOUN 1 year ago
parent f37e74f6b7
commit adf957257c

@ -13,8 +13,8 @@ class ContainerStats extends StatelessWidget {
@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(

@ -5,6 +5,7 @@ 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);
@ -16,6 +17,11 @@ 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 Column(
@ -44,17 +50,17 @@ class LigneContainerStats extends StatelessWidget {
),
SizedBox(height: 20),
Row(
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child:Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const SizedBox(width: 25),
ContainerStats(value1, designation1, Icons.timer ),
const SizedBox(width: 25),
ContainerStats(value2, designation2, Icons.favorite_outline),
const SizedBox(width: 25),
ContainerStats(value3, designation3, Icons.bolt),
],
ContainerStats(value1, designation1, icon1),
const SizedBox(width: 20),
ContainerStats(value2, designation2, icon2),
const SizedBox(width: 20),
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),

@ -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,7 +2,7 @@ import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
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:file_picker/file_picker.dart';

@ -52,7 +52,7 @@ class _MobileHomeView extends State<MobileHomeView> {
SizedBox(
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(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
@ -72,7 +72,7 @@ class _MobileHomeView extends State<MobileHomeView> {
SizedBox(
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(
padding: const EdgeInsets.only(left: 15),
height: media.width * 0.5,

@ -1,10 +1,12 @@
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/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';
@ -19,12 +21,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(
@ -55,7 +61,8 @@ class _WebHomeView extends State<WebHomeView> {
SizedBox(
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(
height: media.width * 0.05,
),
@ -78,7 +85,8 @@ class _WebHomeView extends State<WebHomeView> {
SizedBox(
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(
height: media.width * 0.05,
),

@ -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