premier graphe fonctionnel (rythme cardiaque)

profile
Othmane BENJELLOUN 2 years ago
parent c266f87fc2
commit 6a787a87d9

@ -22,5 +22,6 @@ class User extends ChangeNotifier {
void addActivity(ActivityOfUser activity) { void addActivity(ActivityOfUser activity) {
listActivity.add(activity); listActivity.add(activity);
notifyListeners();
} }
} }

@ -24,7 +24,9 @@ class HomeView extends StatefulWidget {
class _HomeViewState extends State<HomeView> { class _HomeViewState extends State<HomeView> {
List<FlSpot> allSpots = [FlSpot(0, 30),FlSpot(2, 20)]; List<FlSpot> allSpots = [FlSpot(0, 30)];
TextEditingController bpmController = TextEditingController();
List lastWorkoutArr = [ List lastWorkoutArr = [
{ {
"name": "Full Body Workout", "name": "Full Body Workout",
@ -60,14 +62,27 @@ class _HomeViewState extends State<HomeView> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
print("test1");
ManagerFile m = ManagerFile(); ManagerFile m = ManagerFile();
print("test2");
var media = MediaQuery.of(context).size; var media = MediaQuery.of(context).size;
print(m.getHeartRateWithTime(Provider.of<User>(context).listActivity[0])); print("test3");
allSpots = m.getHeartRateWithTime(Provider.of<User>(context).listActivity[0]);
if (Provider.of<User>(context, listen: true).listActivity.isNotEmpty) {
print("rempli");
allSpots = m.getHeartRateWithTime(Provider.of<User>(context).listActivity[0]);
} else {
print("vide");
}
print("test4");
final lineBarsData = [ final lineBarsData = [
LineChartBarData( LineChartBarData(
showingIndicators: showingTooltipOnSpots,
spots: allSpots, spots: allSpots,
isCurved: false, isCurved: false,
barWidth: 2, barWidth: 2,
@ -84,6 +99,7 @@ class _HomeViewState extends State<HomeView> {
), ),
), ),
]; ];
print("test5");
final tooltipsOnBar = lineBarsData[0]; final tooltipsOnBar = lineBarsData[0];
@ -283,31 +299,25 @@ class _HomeViewState extends State<HomeView> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text( Text(
"Graph 2 ( rhythme cardiaque )", "Rhythme cardiaque",
style: TextStyle( style: TextStyle(
color: TColor.black, color: TColor.black,
fontSize: 16, fontSize: 16,
fontWeight: FontWeight.w700), fontWeight: FontWeight.w700),
), ),
ShaderMask( TextField(
blendMode: BlendMode.srcIn, controller: bpmController,
shaderCallback: (bounds) { readOnly: true,
return LinearGradient( style: TextStyle(
colors: TColor.primaryG,
begin: Alignment.centerLeft,
end: Alignment.centerRight)
.createShader(Rect.fromLTRB(
0, 0, bounds.width, bounds.height));
},
child: Text(
"78 BPM",
style: TextStyle(
color: color:
TColor.primaryColor1.withOpacity(0.7), TColor.primaryColor1.withOpacity(0.8),
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
fontSize: 18), fontSize: 18),
decoration: InputDecoration(
border: InputBorder.none, // Ajoutez cette ligne pour supprimer la bordure
),
), ),
),
], ],
), ),
), ),
@ -374,12 +384,12 @@ class _HomeViewState extends State<HomeView> {
touchTooltipData: LineTouchTooltipData( touchTooltipData: LineTouchTooltipData(
tooltipBgColor: TColor.secondaryColor1, tooltipBgColor: TColor.secondaryColor1,
tooltipRoundedRadius: 20, tooltipRoundedRadius: 20,
getTooltipItems: getTooltipItems: (List<LineBarSpot> lineBarsSpot) {
(List<LineBarSpot> lineBarsSpot) {
return lineBarsSpot.map((lineBarSpot) { return lineBarsSpot.map((lineBarSpot) {
bpmController.text = "${lineBarSpot.y} BPM";
return LineTooltipItem( return LineTooltipItem(
"il y a ${lineBarSpot.x.toInt()} minutes", "Seconde ${lineBarSpot.x.toInt() / 10}",
const TextStyle( TextStyle(
color: Colors.white, color: Colors.white,
fontSize: 10, fontSize: 10,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
@ -390,8 +400,8 @@ class _HomeViewState extends State<HomeView> {
), ),
), ),
lineBarsData: lineBarsData, lineBarsData: lineBarsData,
minY: 0, minY: 50,
maxY: 130, maxY: 250,
titlesData: FlTitlesData( titlesData: FlTitlesData(
show: false, show: false,
), ),

@ -29,7 +29,7 @@ class _MainTabViewState extends State<MainTabView> {
height: 70, height: 70,
child: InkWell( child: InkWell(
onTap: () { onTap: () {
selectTab = 0; selectTab = 4;
currentTab = const TestPage(); currentTab = const TestPage();
if (mounted) { if (mounted) {
setState(() {}); setState(() {});

@ -67,13 +67,16 @@ class _TestPage extends State<TestPage> {
print("t"); print("t");
} else { } else {
List<dynamic> result = await x.readFitFile(y!); List<dynamic> result = await x.readFitFile(y!);
print("test11");
print(result); print(result);
print("test22");
print(x.getHeartRateWithTime(ActivityOfUser(result))); print(x.getHeartRateWithTime(ActivityOfUser(result)));
print("test33");
//print(x.getDistanceWithTime(ActivityOfUser(result))); //print(x.getDistanceWithTime(ActivityOfUser(result)));
//print(x.getDistance(ActivityOfUser(result))); //print(x.getDistance(ActivityOfUser(result)));
print(x.getAltitudeWithTime(ActivityOfUser(result))); print("test44");
Provider.of<User>(context).addActivity(ActivityOfUser(result)); Provider.of<User>(context, listen: false).addActivity(ActivityOfUser(result));
print("lalala"); print("test55");
print(result); print(result);
} }

Loading…
Cancel
Save