From ff13fdbd0d90c1140a4f1745645b52f31c550ff9 Mon Sep 17 00:00:00 2001 From: stefan Haslinger Date: Wed, 13 May 2020 10:24:45 +0200 Subject: [PATCH] show at least 40 activities on athlete level --- .../athlete_widgets/athlete_ecor_widget.dart | 30 ++++++++++--------- .../athlete_charts/athlete_ecor_chart.dart | 6 ++++ .../athlete_charts/athlete_power_chart.dart | 6 ++++ .../athlete_power_per_heart_rate_chart.dart | 6 ++++ .../athlete_power_ratio_chart.dart | 6 ++++ .../athlete_speed_per_heart_rate_chart.dart | 6 ++++ .../athlete_stride_ratio_chart.dart | 6 ++++ 7 files changed, 52 insertions(+), 14 deletions(-) diff --git a/lib/widgets/athlete_widgets/athlete_ecor_widget.dart b/lib/widgets/athlete_widgets/athlete_ecor_widget.dart index 7144198..5c61324 100644 --- a/lib/widgets/athlete_widgets/athlete_ecor_widget.dart +++ b/lib/widgets/athlete_widgets/athlete_ecor_widget.dart @@ -24,16 +24,26 @@ class _AthleteEcorWidgetState extends State { @override Widget build(context) { - if (activities.length > 0) { + if (activities.length == 0) { + return Center( + child: Text("Loading"), + ); + } else { var ecorActivities = activities .where((activity) => activity.db.avgPower != null && activity.db.avgPower > 0 && - activity.db.avgSpeed != null && - activity.weight != null) + activity.db.avgSpeed != null) .toList(); - - if (ecorActivities.length > 0) { + if (ecorActivities.length == 0) { + return Center( + child: Text("No ecor data available."), + ); + } else if (ecorActivities.first.weight == null) { + return Center( + child: Text("Please enter your (historical) weight in the settings."), + ); + } else { return ListTileTheme( iconColor: Colors.orange, child: ListView( @@ -43,15 +53,7 @@ class _AthleteEcorWidgetState extends State { ], ), ); - } else { - return Center( - child: Text("No Ecor available."), - ); } - } else { - return Center( - child: Text("Loading"), - ); } } @@ -64,7 +66,7 @@ class _AthleteEcorWidgetState extends State { athletesId: activity.db.athletesId, date: activity.db.timeCreated, ); - activity.weight = weight.db.value; + activity.weight = weight?.db?.value; } setState(() {}); } diff --git a/lib/widgets/charts/athlete_charts/athlete_ecor_chart.dart b/lib/widgets/charts/athlete_charts/athlete_ecor_chart.dart index 2b32b3c..cf93dc8 100644 --- a/lib/widgets/charts/athlete_charts/athlete_ecor_chart.dart +++ b/lib/widgets/charts/athlete_charts/athlete_ecor_chart.dart @@ -1,3 +1,5 @@ +import 'dart:math'; + import 'package:charts_flutter/flutter.dart'; import 'package:encrateia/models/activity_list.dart'; import 'package:flutter/material.dart'; @@ -23,6 +25,10 @@ class AthleteEcorChart extends StatelessWidget { DateTime.now().difference(activity.db.timeCreated).inDays < xAxesDays) .toList(); + if (recentActivities.length < 40) { + int amount = min(activities.length, 40); + recentActivities = activities.sublist(0, amount); + } var data = [ Series( diff --git a/lib/widgets/charts/athlete_charts/athlete_power_chart.dart b/lib/widgets/charts/athlete_charts/athlete_power_chart.dart index 3f6185d..334b7f9 100644 --- a/lib/widgets/charts/athlete_charts/athlete_power_chart.dart +++ b/lib/widgets/charts/athlete_charts/athlete_power_chart.dart @@ -1,3 +1,5 @@ +import 'dart:math'; + import 'package:charts_flutter/flutter.dart'; import 'package:encrateia/models/activity_list.dart'; import 'package:flutter/material.dart'; @@ -23,6 +25,10 @@ class AthletePowerChart extends StatelessWidget { DateTime.now().difference(activity.db.timeCreated).inDays < xAxesDays) .toList(); + if (recentActivities.length < 40) { + int amount = min(activities.length, 40); + recentActivities = activities.sublist(0, amount); + } var data = [ Series( diff --git a/lib/widgets/charts/athlete_charts/athlete_power_per_heart_rate_chart.dart b/lib/widgets/charts/athlete_charts/athlete_power_per_heart_rate_chart.dart index 2a2ab1e..6ef553d 100644 --- a/lib/widgets/charts/athlete_charts/athlete_power_per_heart_rate_chart.dart +++ b/lib/widgets/charts/athlete_charts/athlete_power_per_heart_rate_chart.dart @@ -1,3 +1,5 @@ +import 'dart:math'; + import 'package:charts_flutter/flutter.dart'; import 'package:flutter/material.dart'; import 'package:encrateia/models/activity.dart'; @@ -23,6 +25,10 @@ class AthletePowerPerHeartRateChart extends StatelessWidget { DateTime.now().difference(activity.db.timeCreated).inDays < xAxesDays) .toList(); + if (recentActivities.length < 40) { + int amount = min(activities.length, 40); + recentActivities = activities.sublist(0, amount); + } var data = [ Series( diff --git a/lib/widgets/charts/athlete_charts/athlete_power_ratio_chart.dart b/lib/widgets/charts/athlete_charts/athlete_power_ratio_chart.dart index 1d4a539..d35de01 100644 --- a/lib/widgets/charts/athlete_charts/athlete_power_ratio_chart.dart +++ b/lib/widgets/charts/athlete_charts/athlete_power_ratio_chart.dart @@ -1,3 +1,5 @@ +import 'dart:math'; + import 'package:charts_flutter/flutter.dart'; import 'package:flutter/material.dart'; import 'package:encrateia/models/activity.dart'; @@ -23,6 +25,10 @@ class AthletePowerRatioChart extends StatelessWidget { DateTime.now().difference(activity.db.timeCreated).inDays < xAxesDays) .toList(); + if (recentActivities.length < 40) { + int amount = min(activities.length, 40); + recentActivities = activities.sublist(0, amount); + } var data = [ Series( diff --git a/lib/widgets/charts/athlete_charts/athlete_speed_per_heart_rate_chart.dart b/lib/widgets/charts/athlete_charts/athlete_speed_per_heart_rate_chart.dart index 4c0465b..353af2f 100644 --- a/lib/widgets/charts/athlete_charts/athlete_speed_per_heart_rate_chart.dart +++ b/lib/widgets/charts/athlete_charts/athlete_speed_per_heart_rate_chart.dart @@ -1,3 +1,5 @@ +import 'dart:math'; + import 'package:charts_flutter/flutter.dart'; import 'package:flutter/material.dart'; import 'package:encrateia/models/activity.dart'; @@ -23,6 +25,10 @@ class AthleteSpeedPerHeartRateChart extends StatelessWidget { DateTime.now().difference(activity.db.timeCreated).inDays < xAxesDays) .toList(); + if (recentActivities.length < 40) { + int amount = min(activities.length, 40); + recentActivities = activities.sublist(0, amount); + } var data = [ Series( diff --git a/lib/widgets/charts/athlete_charts/athlete_stride_ratio_chart.dart b/lib/widgets/charts/athlete_charts/athlete_stride_ratio_chart.dart index 4fd07f4..24245c1 100644 --- a/lib/widgets/charts/athlete_charts/athlete_stride_ratio_chart.dart +++ b/lib/widgets/charts/athlete_charts/athlete_stride_ratio_chart.dart @@ -1,3 +1,5 @@ +import 'dart:math'; + import 'package:charts_flutter/flutter.dart'; import 'package:flutter/material.dart'; import 'package:encrateia/models/activity.dart'; @@ -23,6 +25,10 @@ class AthleteStrideRatioChart extends StatelessWidget { DateTime.now().difference(activity.db.timeCreated).inDays < xAxesDays) .toList(); + if (recentActivities.length < 40) { + int amount = min(activities.length, 40); + recentActivities = activities.sublist(0, amount); + } var data = [ Series( -- GitLab