Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
3 Schweinehunde
Encrateia
Commits
59bf0d01
Commit
59bf0d01
authored
May 12, 2020
by
Administrator
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
some progress on athlete ecor chart (still displaying power data though)
parent
75b322fd
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
171 additions
and
13 deletions
+171
-13
lib/screens/show_athlete_screen.dart
lib/screens/show_athlete_screen.dart
+8
-0
lib/widgets/activity_widgets/activity_form_power_widget.dart
lib/widgets/activity_widgets/activity_form_power_widget.dart
+1
-1
lib/widgets/activity_widgets/activity_ground_time_widget.dart
...widgets/activity_widgets/activity_ground_time_widget.dart
+1
-1
lib/widgets/activity_widgets/activity_leg_spring_stiffness_widget.dart
...ctivity_widgets/activity_leg_spring_stiffness_widget.dart
+1
-1
lib/widgets/activity_widgets/activity_power_duration_widget.dart
...gets/activity_widgets/activity_power_duration_widget.dart
+1
-1
lib/widgets/activity_widgets/activity_stryd_cadence_widget.dart
...dgets/activity_widgets/activity_stryd_cadence_widget.dart
+1
-1
lib/widgets/activity_widgets/activity_vertical_oscillation_widget.dart
...ctivity_widgets/activity_vertical_oscillation_widget.dart
+1
-1
lib/widgets/athlete_widgets/athlete_ecor_widget.dart
lib/widgets/athlete_widgets/athlete_ecor_widget.dart
+67
-0
lib/widgets/athlete_widgets/athlete_power_widget.dart
lib/widgets/athlete_widgets/athlete_power_widget.dart
+1
-1
lib/widgets/athlete_widgets/athlete_speed_per_heart_rate_widget.dart
.../athlete_widgets/athlete_speed_per_heart_rate_widget.dart
+1
-1
lib/widgets/charts/athlete_charts/athlete_ecor_chart.dart
lib/widgets/charts/athlete_charts/athlete_ecor_chart.dart
+83
-0
lib/widgets/lap_widgets/lap_form_power_widget.dart
lib/widgets/lap_widgets/lap_form_power_widget.dart
+1
-1
lib/widgets/lap_widgets/lap_ground_time_widget.dart
lib/widgets/lap_widgets/lap_ground_time_widget.dart
+1
-1
lib/widgets/lap_widgets/lap_leg_spring_stiffness_widget.dart
lib/widgets/lap_widgets/lap_leg_spring_stiffness_widget.dart
+1
-1
lib/widgets/lap_widgets/lap_stryd_cadence_widget.dart
lib/widgets/lap_widgets/lap_stryd_cadence_widget.dart
+1
-1
lib/widgets/lap_widgets/lap_vertical_oscillation_widget.dart
lib/widgets/lap_widgets/lap_vertical_oscillation_widget.dart
+1
-1
No files found.
lib/screens/show_athlete_screen.dart
View file @
59bf0d01
...
...
@@ -12,6 +12,7 @@ import 'package:encrateia/widgets/athlete_widgets/athlete_settings_widget.dart';
import
'package:encrateia/widgets/athlete_widgets/athlete_power_per_heart_rate_widget.dart'
;
import
'package:encrateia/widgets/athlete_widgets/athlete_speed_per_heart_rate_widget.dart'
;
import
'package:encrateia/widgets/athlete_widgets/athlete_body_weight_widget.dart'
;
import
'package:encrateia/widgets/athlete_widgets/athlete_ecor_widget.dart'
;
import
'package:encrateia/screens/show_athlete_detail_screen.dart'
;
import
'package:encrateia/utils/icon_utils.dart'
;
import
'package:flushbar/flushbar.dart'
;
...
...
@@ -92,6 +93,13 @@ class _ShowAthleteScreenState extends State<ShowAthleteScreen> {
nextWidget:
AthletePowerPerHeartRateWidget
(
athlete:
widget
.
athlete
),
),
navigationButton
(
color:
MyColor
.
navigate
,
title:
"Ecor"
,
icon:
MyIcon
.
power
,
nextWidget:
AthleteEcorWidget
(
athlete:
widget
.
athlete
),
),
navigationButton
(
color:
MyColor
.
navigate
,
title:
"Stride Ratio"
,
...
...
lib/widgets/activity_widgets/activity_form_power_widget.dart
View file @
59bf0d01
...
...
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import
'package:encrateia/models/activity.dart'
;
import
'package:encrateia/models/event.dart'
;
import
'package:encrateia/utils/num_utils.dart'
;
import
'
..
/charts/actitvity_charts/activity_form_power_chart.dart'
;
import
'
package:encrateia/widgets
/charts/actitvity_charts/activity_form_power_chart.dart'
;
import
'package:encrateia/utils/icon_utils.dart'
;
class
ActivityFormPowerWidget
extends
StatefulWidget
{
...
...
lib/widgets/activity_widgets/activity_ground_time_widget.dart
View file @
59bf0d01
...
...
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import
'package:encrateia/models/activity.dart'
;
import
'package:encrateia/models/event.dart'
;
import
'package:encrateia/utils/num_utils.dart'
;
import
'
..
/charts/actitvity_charts/activity_ground_time_chart.dart'
;
import
'
package:encrateia/widgets
/charts/actitvity_charts/activity_ground_time_chart.dart'
;
import
'package:encrateia/utils/icon_utils.dart'
;
class
ActivityGroundTimeWidget
extends
StatefulWidget
{
...
...
lib/widgets/activity_widgets/activity_leg_spring_stiffness_widget.dart
View file @
59bf0d01
...
...
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import
'package:encrateia/models/activity.dart'
;
import
'package:encrateia/models/event.dart'
;
import
'package:encrateia/utils/num_utils.dart'
;
import
'
..
/charts/actitvity_charts/activity_leg_spring_stiffness_chart.dart'
;
import
'
package:encrateia/widgets
/charts/actitvity_charts/activity_leg_spring_stiffness_chart.dart'
;
import
'package:encrateia/utils/icon_utils.dart'
;
class
ActivityLegSpringStiffnessWidget
extends
StatefulWidget
{
...
...
lib/widgets/activity_widgets/activity_power_duration_widget.dart
View file @
59bf0d01
...
...
@@ -2,7 +2,7 @@ import 'package:encrateia/models/athlete.dart';
import
'package:flutter/material.dart'
;
import
'package:encrateia/models/activity.dart'
;
import
'package:encrateia/models/event.dart'
;
import
'
..
/charts/power_duration_chart.dart'
;
import
'
package:encrateia/widgets
/charts/power_duration_chart.dart'
;
class
ActivityPowerDurationWidget
extends
StatelessWidget
{
final
Activity
activity
;
...
...
lib/widgets/activity_widgets/activity_stryd_cadence_widget.dart
View file @
59bf0d01
...
...
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import
'package:encrateia/models/activity.dart'
;
import
'package:encrateia/models/event.dart'
;
import
'package:encrateia/utils/num_utils.dart'
;
import
'
..
/charts/actitvity_charts/activity_stryd_cadence_chart.dart'
;
import
'
package:encrateia/widgets
/charts/actitvity_charts/activity_stryd_cadence_chart.dart'
;
import
'package:encrateia/utils/icon_utils.dart'
;
class
ActivityStrydCadenceWidget
extends
StatefulWidget
{
...
...
lib/widgets/activity_widgets/activity_vertical_oscillation_widget.dart
View file @
59bf0d01
...
...
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import
'package:encrateia/models/activity.dart'
;
import
'package:encrateia/models/event.dart'
;
import
'package:encrateia/utils/num_utils.dart'
;
import
'
..
/charts/actitvity_charts/activity_vertical_oscillation_chart.dart'
;
import
'
package:encrateia/widgets
/charts/actitvity_charts/activity_vertical_oscillation_chart.dart'
;
import
'package:encrateia/utils/icon_utils.dart'
;
class
ActivityVerticalOscillationWidget
extends
StatefulWidget
{
...
...
lib/widgets/athlete_widgets/athlete_ecor_widget.dart
0 → 100644
View file @
59bf0d01
import
'package:encrateia/models/weight.dart'
;
import
'package:flutter/material.dart'
;
import
'package:encrateia/models/athlete.dart'
;
import
'package:encrateia/models/activity.dart'
;
import
'package:encrateia/widgets/charts/athlete_charts/athlete_ecor_chart.dart'
;
class
AthleteEcorWidget
extends
StatefulWidget
{
final
Athlete
athlete
;
AthleteEcorWidget
({
this
.
athlete
});
@override
_AthleteEcorWidgetState
createState
()
=>
_AthleteEcorWidgetState
();
}
class
_AthleteEcorWidgetState
extends
State
<
AthleteEcorWidget
>
{
List
<
Activity
>
activities
=
[];
double
anyWeight
;
@override
void
initState
()
{
getData
();
super
.
initState
();
}
@override
Widget
build
(
context
)
{
if
(
activities
.
length
>
0
)
{
var
ecorActivities
=
activities
.
where
((
activity
)
=>
activity
.
db
.
avgPower
!=
null
&&
activity
.
db
.
avgPower
>
0
&&
activity
.
db
.
avgSpeed
!=
null
)
.
toList
();
if
(
ecorActivities
.
length
>
0
&&
anyWeight
!=
null
)
{
return
ListTileTheme
(
iconColor:
Colors
.
orange
,
child:
ListView
(
padding:
EdgeInsets
.
only
(
left:
25
),
children:
<
Widget
>[
AthleteEcorChart
(
activities:
ecorActivities
),
],
),
);
}
else
{
return
Center
(
child:
Text
(
"No Ecor available."
),
);
}
}
else
{
return
Center
(
child:
Text
(
"Loading"
),
);
}
}
getData
()
async
{
Athlete
athlete
=
widget
.
athlete
;
activities
=
await
athlete
.
activities
;
anyWeight
=
await
Weight
.
getBy
(
athletesId:
widget
.
athlete
.
db
.
id
,
date:
DateTime
.
now
(),
);
setState
(()
{});
}
}
lib/widgets/athlete_widgets/athlete_power_widget.dart
View file @
59bf0d01
import
'package:flutter/material.dart'
;
import
'package:encrateia/models/athlete.dart'
;
import
'package:encrateia/models/activity.dart'
;
import
'
..
/charts/athlete_charts/athlete_power_chart.dart'
;
import
'
package:encrateia/widgets
/charts/athlete_charts/athlete_power_chart.dart'
;
class
AthletePowerWidget
extends
StatefulWidget
{
final
Athlete
athlete
;
...
...
lib/widgets/athlete_widgets/athlete_speed_per_heart_rate_widget.dart
View file @
59bf0d01
import
'package:flutter/material.dart'
;
import
'package:encrateia/models/athlete.dart'
;
import
'package:encrateia/models/activity.dart'
;
import
'
..
/charts/athlete_charts/athlete_speed_per_heart_rate_chart.dart'
;
import
'
package:encrateia/widgets
/charts/athlete_charts/athlete_speed_per_heart_rate_chart.dart'
;
class
AthleteSpeedPerHeartRateWidget
extends
StatefulWidget
{
final
Athlete
athlete
;
...
...
lib/widgets/charts/athlete_charts/athlete_ecor_chart.dart
0 → 100644
View file @
59bf0d01
import
'package:charts_flutter/flutter.dart'
;
import
'package:encrateia/models/activity_list.dart'
;
import
'package:flutter/material.dart'
;
import
'package:encrateia/models/activity.dart'
;
import
'package:encrateia/utils/enums.dart'
;
class
AthleteEcorChart
extends
StatelessWidget
{
final
List
<
Activity
>
activities
;
AthleteEcorChart
({
@required
this
.
activities
});
@override
Widget
build
(
BuildContext
context
)
{
int
xAxesDays
=
60
;
ActivityList
(
activities:
activities
).
enrichGlidingAverage
(
quantity:
ActivityAttr
.
avgPower
,
fullDecay:
30
,
);
var
recentActivities
=
activities
.
where
((
activity
)
=>
DateTime
.
now
().
difference
(
activity
.
db
.
timeCreated
).
inDays
<
xAxesDays
)
.
toList
();
var
data
=
[
Series
<
Activity
,
DateTime
>(
id:
'ecor'
,
colorFn:
(
_
,
__
)
=>
MaterialPalette
.
blue
.
shadeDefault
,
domainFn:
(
Activity
activity
,
_
)
=>
activity
.
db
.
timeCreated
,
measureFn:
(
Activity
activity
,
_
)
=>
activity
.
db
.
avgPower
,
data:
recentActivities
,
),
Series
<
Activity
,
DateTime
>(
id:
'gliding_ecor'
,
colorFn:
(
_
,
__
)
=>
MaterialPalette
.
green
.
shadeDefault
,
domainFn:
(
Activity
activity
,
_
)
=>
activity
.
db
.
timeCreated
,
measureFn:
(
Activity
activity
,
_
)
=>
activity
.
glidingAvgPower
,
data:
recentActivities
,
)..
setAttribute
(
rendererIdKey
,
'glidingAverageRenderer'
),
];
return
new
Container
(
height:
300
,
child:
TimeSeriesChart
(
data
,
animate:
false
,
defaultRenderer:
LineRendererConfig
(
includePoints:
true
,
includeLine:
false
,
),
customSeriesRenderers:
[
LineRendererConfig
(
customRendererId:
'glidingAverageRenderer'
,
dashPattern:
[
1
,
2
],
),
],
primaryMeasureAxis:
NumericAxisSpec
(
tickProviderSpec:
BasicNumericTickProviderSpec
(
zeroBound:
false
,
dataIsInWholeNumbers:
false
,
desiredTickCount:
6
,
),
),
behaviors:
[
ChartTitle
(
'Ecor (W s/kg m)'
,
titleStyleSpec:
TextStyleSpec
(
fontSize:
13
),
behaviorPosition:
BehaviorPosition
.
start
,
titleOutsideJustification:
OutsideJustification
.
end
,
),
ChartTitle
(
'Date'
,
titleStyleSpec:
TextStyleSpec
(
fontSize:
13
),
behaviorPosition:
BehaviorPosition
.
bottom
,
titleOutsideJustification:
OutsideJustification
.
end
,
),
],
),
);
}
}
lib/widgets/lap_widgets/lap_form_power_widget.dart
View file @
59bf0d01
...
...
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import
'package:encrateia/models/lap.dart'
;
import
'package:encrateia/models/event.dart'
;
import
'package:encrateia/utils/num_utils.dart'
;
import
'
..
/charts/lap_charts/lap_form_power_chart.dart'
;
import
'
package:encrateia/widgets
/charts/lap_charts/lap_form_power_chart.dart'
;
import
'package:encrateia/utils/icon_utils.dart'
;
class
LapFormPowerWidget
extends
StatefulWidget
{
...
...
lib/widgets/lap_widgets/lap_ground_time_widget.dart
View file @
59bf0d01
...
...
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import
'package:encrateia/models/lap.dart'
;
import
'package:encrateia/models/event.dart'
;
import
'package:encrateia/utils/num_utils.dart'
;
import
'
..
/charts/lap_charts/lap_ground_time_chart.dart'
;
import
'
package:encrateia/widgets
/charts/lap_charts/lap_ground_time_chart.dart'
;
import
'package:encrateia/utils/icon_utils.dart'
;
class
LapGroundTimeWidget
extends
StatefulWidget
{
...
...
lib/widgets/lap_widgets/lap_leg_spring_stiffness_widget.dart
View file @
59bf0d01
...
...
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import
'package:encrateia/models/lap.dart'
;
import
'package:encrateia/models/event.dart'
;
import
'package:encrateia/utils/num_utils.dart'
;
import
'
..
/charts/lap_charts/lap_leg_spring_stiffness_chart.dart'
;
import
'
package:encrateia/widgets
/charts/lap_charts/lap_leg_spring_stiffness_chart.dart'
;
import
'package:encrateia/utils/icon_utils.dart'
;
class
LapLegSpringStiffnessWidget
extends
StatefulWidget
{
...
...
lib/widgets/lap_widgets/lap_stryd_cadence_widget.dart
View file @
59bf0d01
...
...
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import
'package:encrateia/models/lap.dart'
;
import
'package:encrateia/models/event.dart'
;
import
'package:encrateia/utils/num_utils.dart'
;
import
'
..
/charts/lap_charts/lap_stryd_cadence_chart.dart'
;
import
'
package:encrateia/widgets
/charts/lap_charts/lap_stryd_cadence_chart.dart'
;
import
'package:encrateia/utils/icon_utils.dart'
;
class
LapStrydCadenceWidget
extends
StatefulWidget
{
...
...
lib/widgets/lap_widgets/lap_vertical_oscillation_widget.dart
View file @
59bf0d01
...
...
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import
'package:encrateia/models/lap.dart'
;
import
'package:encrateia/models/event.dart'
;
import
'package:encrateia/utils/num_utils.dart'
;
import
'
..
/charts/lap_charts/lap_vertical_oscillation_chart.dart'
;
import
'
package:encrateia/widgets
/charts/lap_charts/lap_vertical_oscillation_chart.dart'
;
import
'package:encrateia/utils/icon_utils.dart'
;
class
LapVerticalOscillationWidget
extends
StatefulWidget
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment