You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.8 KiB
65 lines
1.8 KiB
import 'package:flutter/material.dart';
|
|
import 'package:smartfit_app_mobile/modele/activity.dart';
|
|
import 'package:smartfit_app_mobile/modele/activity_info/activity_info_walking.dart';
|
|
import 'package:smartfit_app_mobile/modele/manager_selected_activity.dart';
|
|
|
|
class User extends ChangeNotifier {
|
|
String username = "VOID";
|
|
String email = "VOID";
|
|
String token = "VOID";
|
|
List<ActivityOfUser> listActivity = List.empty(growable: true);
|
|
ManagerSelectedActivity managerSelectedActivity = ManagerSelectedActivity();
|
|
|
|
void addActivity(ActivityOfUser activity) {
|
|
listActivity.add(activity);
|
|
notifyListeners();
|
|
}
|
|
|
|
void removeActivity(ActivityOfUser activity) {
|
|
listActivity.remove(activity);
|
|
notifyListeners();
|
|
}
|
|
|
|
// Method to insert an activity at a specific position
|
|
void insertActivity(int index, ActivityOfUser activity) {
|
|
listActivity.insert(index, activity);
|
|
notifyListeners();
|
|
}
|
|
|
|
// ------------ Fonction Calcul -------- //
|
|
|
|
double getTotalTimeAllActivity() {
|
|
double totalTime = 0.0;
|
|
for (ActivityOfUser activity in listActivity) {
|
|
totalTime += activity.activityInfo.timeOfActivity;
|
|
}
|
|
return totalTime;
|
|
}
|
|
|
|
double getTotalDenivelePositif() {
|
|
double totalDevPos = 0.0;
|
|
for (ActivityOfUser activity in listActivity) {
|
|
try {
|
|
totalDevPos +=
|
|
(activity.activityInfo as ActivityInfoWalking).denivelePositif;
|
|
} catch (e) {
|
|
//print(e);
|
|
}
|
|
}
|
|
return totalDevPos;
|
|
}
|
|
|
|
double getTotalDeniveleNegatif() {
|
|
double totalDevNeg = 0.0;
|
|
for (ActivityOfUser activity in listActivity) {
|
|
try {
|
|
totalDevNeg +=
|
|
(activity.activityInfo as ActivityInfoWalking).deniveleNegatif;
|
|
} catch (e) {
|
|
//print(e);
|
|
}
|
|
}
|
|
return totalDevNeg;
|
|
}
|
|
}
|