68 lines
1.7 KiB
Dart
68 lines
1.7 KiB
Dart
import 'package:flutter/material.dart';
|
|
import '../utils/my_color.dart';
|
|
import '/models/activity.dart';
|
|
import '/models/athlete.dart';
|
|
import '/utils/icon_utils.dart';
|
|
|
|
Future<void> analyseActivities({
|
|
required BuildContext context,
|
|
required Athlete athlete,
|
|
}) async {
|
|
List<Activity> activities;
|
|
activities = await athlete.activities;
|
|
int index = 0;
|
|
int percent;
|
|
|
|
if (context.mounted) {
|
|
ScaffoldMessenger.of(context).showSnackBar(
|
|
SnackBar(
|
|
duration: const Duration(seconds: 5),
|
|
content: Row(
|
|
children: [
|
|
MyIcon.finishedWhite,
|
|
const Text(' Calculating...'),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
for (final Activity activity in activities) {
|
|
index += 1;
|
|
await activity.setAverages();
|
|
if (context.mounted) {
|
|
ScaffoldMessenger.of(context).removeCurrentSnackBar();
|
|
}
|
|
percent = 100 * index ~/ activities.length;
|
|
if (context.mounted) {
|
|
ScaffoldMessenger.of(context).showSnackBar(
|
|
SnackBar(
|
|
duration: const Duration(seconds: 2),
|
|
content: Row(children: [
|
|
CircularProgressIndicator(
|
|
value: percent / 100, color: MyColor.progress),
|
|
Text(' recalculating »${activity.name}«')
|
|
]),
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
if (context.mounted) {
|
|
ScaffoldMessenger.of(context).removeCurrentSnackBar();
|
|
}
|
|
if (context.mounted) {
|
|
ScaffoldMessenger.of(context).showSnackBar(
|
|
SnackBar(
|
|
duration: const Duration(seconds: 5),
|
|
content: Row(
|
|
children: [
|
|
MyIcon.finishedWhite,
|
|
const Text(' Averages are now up to date.')
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|