diff --git a/lib/widgets/athlete_widgets/athlete_ecor_widget.dart b/lib/widgets/athlete_widgets/athlete_ecor_widget.dart index 7144198ef0af38fab9f9da4c3f993b7414cee8b4..5c613242d356bc00471109fb5c446ae7fe0708d7 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 2b32b3c1ae5832c5587ca6217a75f13a230ee91b..cf93dc8f1d4769170b083f4a61c14a671643a1b6 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 3f6185d16365b63b62bb3b43a7db6b21bbeb462d..334b7f9496f5f0e0d59917d5c3c4c8223b3926a2 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 2a2ab1e9611cf0ef5a084597480420fcbbbe260c..6ef553d4d52fe2d8600ad71618e82178df6c76f8 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 1d4a53987916f4b53bf83c375103680c7bc3886f..d35de01c9a442220e1cdae85ff7d822e156f0431 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 4c0465b8fba4a4d764af01023a13be5c5f5cf092..353af2f63dcdcd17b70a0a2116ed5a43e8aa544f 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 4fd07f4f486321964f0534cf3544282b6dcb3408..24245c1920fcf3ae44001ea668c3e5b030e55c87 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(