Merge branch 'othmane2'

profile
Enzo 2 years ago
commit 0f43b43ead

File diff suppressed because it is too large Load Diff

@ -1,6 +1,7 @@
import 'dart:math';
import 'dart:ui' as ui; import 'dart:ui' as ui;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/modele/user.dart';
import 'package:smartfit_app_mobile/common/colo_extension.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart';
class Graph extends StatelessWidget { class Graph extends StatelessWidget {
@ -28,17 +29,6 @@ class _GraphAreaState extends State<GraphArea>
with SingleTickerProviderStateMixin { with SingleTickerProviderStateMixin {
late AnimationController _animationController; late AnimationController _animationController;
List<DataPoint> data = [
DataPoint(day: 1, steps: Random().nextInt(70)),
DataPoint(day: 2, steps: Random().nextInt(70)),
DataPoint(day: 3, steps: Random().nextInt(70)),
DataPoint(day: 4, steps: Random().nextInt(70)),
DataPoint(day: 5, steps: Random().nextInt(70)),
DataPoint(day: 6, steps: Random().nextInt(70)),
DataPoint(day: 7, steps: Random().nextInt(70)),
DataPoint(day: 8, steps: Random().nextInt(70)),
];
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@ -55,12 +45,16 @@ class _GraphAreaState extends State<GraphArea>
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
List<DataPoint> vitesseSecondes = Provider.of<User>(context, listen: false)
.listActivity[0]
.getSpeedWithTimeActivity();
return GestureDetector( return GestureDetector(
onTap: () { onTap: () {
_animationController.forward(from: 0.0); _animationController.forward(from: 0.0);
}, },
child: CustomPaint( child: CustomPaint(
painter: GraphPainter(_animationController.view, data: data), painter: GraphPainter(_animationController.view, data: vitesseSecondes),
), ),
); );
} }
@ -93,8 +87,8 @@ class GraphPainter extends CustomPainter {
var xSpacing = size.width / (data.length - 1); var xSpacing = size.width / (data.length - 1);
var maxSteps = data var maxSteps = data
.fold<DataPoint>(data[0], (p, c) => p.steps > c.steps ? p : c) .fold<DataPoint>(data[0], (p, c) => p.speed > c.speed ? p : c)
.steps; .speed;
var yRatio = size.height / maxSteps; var yRatio = size.height / maxSteps;
var curveOffset = xSpacing * 0.3; var curveOffset = xSpacing * 0.3;
@ -103,7 +97,7 @@ class GraphPainter extends CustomPainter {
var cx = 0.0; var cx = 0.0;
for (int i = 0; i < data.length; i++) { for (int i = 0; i < data.length; i++) {
var y = size.height - (data[i].steps * yRatio * _size.value); var y = size.height - (data[i].speed * yRatio * _size.value);
offsets.add(Offset(cx, y)); offsets.add(Offset(cx, y));
cx += xSpacing; cx += xSpacing;
@ -133,7 +127,7 @@ class GraphPainter extends CustomPainter {
..style = PaintingStyle.fill; ..style = PaintingStyle.fill;
Paint dotOutlinePaint = Paint() Paint dotOutlinePaint = Paint()
..color = Colors.white.withAlpha(200) ..color = ui.Color.fromARGB(255, 236, 236, 236).withAlpha(200)
..strokeWidth = 8; ..strokeWidth = 8;
Paint dotCenter = Paint() Paint dotCenter = Paint()
@ -166,8 +160,21 @@ class GraphPainter extends CustomPainter {
canvas.drawPath(linePath, shadowPaint); canvas.drawPath(linePath, shadowPaint);
canvas.drawPath(linePath, linePaint); canvas.drawPath(linePath, linePaint);
canvas.drawCircle(offsets[4], 15 * _dotSize.value, dotOutlinePaint); int maxIndex = 0;
canvas.drawCircle(offsets[4], 6 * _dotSize.value, dotCenter); double maxY = offsets[0]
.dy; // Supposons que la première coordonnée est la plus grande
for (int i = 1; i < offsets.length; i++) {
if (offsets[i].dy < maxY) {
maxIndex = i;
maxY = offsets[i].dy;
}
}
// Maintenant, maxIndex contient l'indice de la coordonnée maximale dans la liste offsets
// Utilisez ces coordonnées pour dessiner le point
canvas.drawCircle(offsets[maxIndex], 15 * _dotSize.value, dotOutlinePaint);
canvas.drawCircle(offsets[maxIndex], 6 * _dotSize.value, dotCenter);
} }
@override @override
@ -177,11 +184,11 @@ class GraphPainter extends CustomPainter {
} }
class DataPoint { class DataPoint {
final int day; final double time;
final int steps; final double speed;
DataPoint({ DataPoint(
required this.day, this.time,
required this.steps, this.speed,
}); );
} }

@ -1,27 +1,31 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/modele/user.dart';
class Info extends StatelessWidget { class Info extends StatelessWidget {
const Info({Key? key}) : super(key: key); Info({Key? key}) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
String distance = Provider.of<User>(context, listen: false)
.listActivity[0]
.getTotalDistance();
return Row( return Row(
mainAxisAlignment: MainAxisAlignment.spaceAround, mainAxisAlignment: MainAxisAlignment.spaceAround,
children: const [ children: [
Stats(value: '345', unit: 'kcal', label: 'Calories'), Stats(value: distance, unit: 'm', label: 'Distance'),
Stats(value: '3.6', unit: 'km', label: 'Distance'),
Stats(value: '1.5', unit: 'hr', label: 'Hours'),
], ],
); );
} }
} }
class Stats extends StatelessWidget { class Stats extends StatelessWidget {
final String value; String value;
final String unit; String unit;
final String label; String label;
const Stats({ Stats({
Key? key, Key? key,
required this.value, required this.value,
required this.unit, required this.unit,
@ -37,25 +41,25 @@ class Stats extends StatelessWidget {
Text.rich( Text.rich(
TextSpan( TextSpan(
text: value, text: value,
style: const TextStyle( style: TextStyle(
fontSize: 20, fontSize: 20,
fontWeight: FontWeight.w900, fontWeight: FontWeight.w900,
), ),
children: [ children: [
const TextSpan(text: ' '), TextSpan(text: ' '),
TextSpan( TextSpan(
text: unit, text: unit,
style: const TextStyle( style: TextStyle(
fontSize: 10, fontSize: 10,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
), ),
), ),
]), ]),
), ),
const SizedBox(height: 6), SizedBox(height: 6),
Text( Text(
label, label,
style: const TextStyle( style: TextStyle(
fontSize: 10, fontSize: 10,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
), ),
@ -63,4 +67,4 @@ class Stats extends StatelessWidget {
], ],
); );
} }
} }

@ -1,4 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/modele/user.dart';
import 'package:smartfit_app_mobile/common/colo_extension.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart';
class Stats extends StatelessWidget { class Stats extends StatelessWidget {
@ -6,12 +8,22 @@ class Stats extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
String calories = Provider.of<User>(context, listen: false)
.listActivity[0]
.getTotalCalorie();
String heartrate = Provider.of<User>(context, listen: false)
.listActivity[0]
.getTotalAvgHeartRate();
String time = Provider.of<User>(context, listen: false)
.listActivity[0]
.getTotalTime();
return Column( return Column(
children: [ children: [
Padding( Padding(
padding: const EdgeInsets.symmetric(horizontal: 30), padding: const EdgeInsets.symmetric(horizontal: 30),
child: Row( child: Row(
children: [ children: [
Text( Text(
'Statistiques', 'Statistiques',
style: TextStyle( style: TextStyle(
@ -32,7 +44,7 @@ class Stats extends StatelessWidget {
SingleChildScrollView( SingleChildScrollView(
scrollDirection: Axis.horizontal, scrollDirection: Axis.horizontal,
child: Row( child: Row(
children: const [ children: [
SizedBox(width: 30), SizedBox(width: 30),
InfoStat( InfoStat(
icon: Icons.timer, icon: Icons.timer,
@ -40,7 +52,7 @@ class Stats extends StatelessWidget {
iconBackground: Color(0xff6131AD), iconBackground: Color(0xff6131AD),
time: '+5s', time: '+5s',
label: 'Time', label: 'Time',
value: '30:34', value: time + ' s',
), ),
SizedBox(width: 15), SizedBox(width: 15),
InfoStat( InfoStat(
@ -49,7 +61,7 @@ class Stats extends StatelessWidget {
iconBackground: Color(0xff6131AD), iconBackground: Color(0xff6131AD),
time: '+5s', time: '+5s',
label: 'Heart Rate', label: 'Heart Rate',
value: '151bpm', value: heartrate + " BPM",
), ),
SizedBox(width: 15), SizedBox(width: 15),
InfoStat( InfoStat(
@ -58,7 +70,7 @@ class Stats extends StatelessWidget {
iconBackground: Color(0xff6131AD), iconBackground: Color(0xff6131AD),
time: '+5s', time: '+5s',
label: 'Energy', label: 'Energy',
value: '169kcal', value: calories + " kCal",
), ),
SizedBox(width: 30), SizedBox(width: 30),
], ],
@ -194,4 +206,4 @@ class StatIcon extends StatelessWidget {
child: Icon(icon, size: 15, color: iconColor), child: Icon(icon, size: 15, color: iconColor),
); );
} }
} }

@ -1,4 +1,5 @@
import 'package:smartfit_app_mobile/common_widget/helpers.dart'; import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/modele/user.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class Steps extends StatelessWidget { class Steps extends StatelessWidget {
@ -6,7 +7,11 @@ class Steps extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
String steps = formatNumber(randBetween(3000, 6000)); print("lhwaa");
String steps = Provider.of<User>(context, listen: false)
.listActivity[0]
.getTotalSteps();
return Padding( return Padding(
padding: const EdgeInsets.symmetric(vertical: 20), padding: const EdgeInsets.symmetric(vertical: 20),
child: Column( child: Column(
@ -30,4 +35,4 @@ class Steps extends StatelessWidget {
), ),
); );
} }
} }

@ -1,11 +1,6 @@
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/modele/activity.dart';
import 'package:smartfit_app_mobile/modele/user.dart';
import 'package:smartfit_app_mobile/view/activity/activity.dart';
import 'package:smartfit_app_mobile/common/colo_extension.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:simple_animation_progress_bar/simple_animation_progress_bar.dart';
class WorkoutRow extends StatelessWidget { class WorkoutRow extends StatelessWidget {
final Map wObj; final Map wObj;

@ -1,9 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/modele/user.dart'; import 'package:smartfit_app_mobile/modele/user.dart';
import 'package:smartfit_app_mobile/view/activity/list_activity.dart'; import 'package:smartfit_app_mobile/view/main_tab/main_tab_view.dart';
import 'package:smartfit_app_mobile/view/login/login_view.dart';
import 'package:smartfit_app_mobile/view/login/signup_view.dart';
import 'package:smartfit_app_mobile/common/colo_extension.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart';
void main() { void main() {
@ -38,7 +36,7 @@ class MyApp extends StatelessWidget {
primaryColor: TColor.primaryColor1, primaryColor: TColor.primaryColor1,
fontFamily: "Poppins"), fontFamily: "Poppins"),
//home: const StartedView(), //home: const StartedView(),
home: const SignUpView(), home: const MainTabView(),
); );
} }
} }

@ -1,4 +1,5 @@
import 'package:fl_chart/fl_chart.dart'; import 'package:fl_chart/fl_chart.dart';
import 'package:smartfit_app_mobile/common_widget/graph.dart';
class ActivityOfUser { class ActivityOfUser {
late String _nomActivite; late String _nomActivite;
@ -55,27 +56,110 @@ class ActivityOfUser {
} }
return result; return result;
} }
List<FlSpot> getCalories() { List<FlSpot> getCalories() {
List<FlSpot> result = List.empty(growable: true); List<FlSpot> result = List.empty(growable: true);
int firtTimeStamp = 0; int firtTimeStamp = 0;
print("enzo");
print(_contentActivity.length);
for (List<dynamic> ligne in _contentActivity) { for (List<dynamic> ligne in _contentActivity) {
if (ligne.length >= 39 &&
if (ligne.length >= 39 && ligne[0] == "Data" && ligne[39] == "total_calories") { ligne[0] == "Data" &&
print("enzo"); ligne[39] == "total_calories") {
print(ligne[39]); print(ligne[39]);
if (firtTimeStamp == 0) { if (firtTimeStamp == 0) {
firtTimeStamp = ligne[4]; firtTimeStamp = ligne[4];
} }
//result.add([(ligne[4] - firtTimeStamp) ~/ 100, ligne[7].toInt()]); //result.add([(ligne[4] - firtTimeStamp) ~/ 100, ligne[7].toInt()]);
result result.add(
.add(FlSpot((ligne[4] - firtTimeStamp) / 100, ligne[40].toDouble())); FlSpot((ligne[4] - firtTimeStamp) / 100, ligne[40].toDouble()));
} }
} }
return result; return result;
} }
String getTotalSteps() {
List<FlSpot> result = List.empty(growable: true);
print(_contentActivity.length);
for (int i = 0;
i < _contentActivity[_contentActivity.length - 3].length;
i++) {
print(_contentActivity[_contentActivity.length - 3][i]);
if (_contentActivity[_contentActivity.length - 3][i] == "total_strides") {
return _contentActivity[_contentActivity.length - 3][i + 1].toString();
}
}
return "NAN";
}
String getTotalCalorie() {
List<FlSpot> result = List.empty(growable: true);
print(_contentActivity.length);
for (int i = 0;
i < _contentActivity[_contentActivity.length - 3].length;
i++) {
print(_contentActivity[_contentActivity.length - 3][i]);
if (_contentActivity[_contentActivity.length - 3][i] ==
"total_calories") {
return _contentActivity[_contentActivity.length - 3][i + 1].toString();
}
}
return "NAN";
}
String getTotalAvgHeartRate() {
List<FlSpot> result = List.empty(growable: true);
print(_contentActivity.length);
for (int i = 0;
i < _contentActivity[_contentActivity.length - 3].length;
i++) {
print(_contentActivity[_contentActivity.length - 3][i]);
if (_contentActivity[_contentActivity.length - 3][i] ==
"total_calories") {
return _contentActivity[_contentActivity.length - 3][i + 1].toString();
}
}
return "NAN";
}
String getTotalTime() {
List<FlSpot> result = List.empty(growable: true);
print(_contentActivity.length);
for (int i = 0;
i < _contentActivity[_contentActivity.length - 3].length;
i++) {
print(_contentActivity[_contentActivity.length - 3][i]);
if (_contentActivity[_contentActivity.length - 3][i] ==
"total_elapsed_time") {
return _contentActivity[_contentActivity.length - 3][i + 1].toString();
}
}
return "NAN";
}
String getTotalDistance() {
List<FlSpot> result = List.empty(growable: true);
print(_contentActivity.length);
for (int i = 0;
i < _contentActivity[_contentActivity.length - 3].length;
i++) {
print(_contentActivity[_contentActivity.length - 3][i]);
if (_contentActivity[_contentActivity.length - 3][i] ==
"total_distance") {
return _contentActivity[_contentActivity.length - 3][i + 1].toString();
}
}
return "NAN";
}
List<FlSpot> getAltitudeWithTime() { List<FlSpot> getAltitudeWithTime() {
List<FlSpot> result = List.empty(growable: true); List<FlSpot> result = List.empty(growable: true);
int firtTimeStamp = 0; int firtTimeStamp = 0;
@ -130,6 +214,31 @@ class ActivityOfUser {
return result; return result;
} }
List<DataPoint> getSpeedWithTimeActivity() {
List<DataPoint> result = List.empty(growable: true);
int firtTimeStamp = 0;
for (List<dynamic> ligne in _contentActivity) {
if (ligne[0] == "Data" && ligne[1] == 1) {
if (firtTimeStamp == 0) {
firtTimeStamp = ligne[4];
}
result.add(DataPoint(
((ligne[4] - firtTimeStamp) / 100),
ligne[19].toDouble(),
));
}
if (ligne[0] == "Data" && ligne[1] == 2) {
if (firtTimeStamp == 0) {
firtTimeStamp = ligne[4];
}
result.add(DataPoint(
((ligne[4] - firtTimeStamp) / 100), ligne[25].toDouble()));
}
}
return result;
}
Map<String, dynamic> toMap() { Map<String, dynamic> toMap() {
return { return {
'nomActivite': _nomActivite, 'nomActivite': _nomActivite,

@ -1,6 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:smartfit_app_mobile/modele/activity.dart'; import 'package:smartfit_app_mobile/modele/activity.dart';
import 'package:smartfit_app_mobile/view/activity/list_activity.dart';
class User extends ChangeNotifier { class User extends ChangeNotifier {
String username = "VOID"; String username = "VOID";

@ -1,16 +0,0 @@
import 'package:responsive_builder/responsive_builder.dart';
import 'package:smartfit_app_mobile/view/home/mobile/mobile_Activity_view.dart';
import 'package:smartfit_app_mobile/view/home/web/web_Activity_view.dart';
import 'package:flutter/material.dart';
class Activity extends StatelessWidget {
const Activity({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return ScreenTypeLayout.builder(
mobile: (_) => const MobileActivity(),
desktop: (_) => const WebActivity(),
);
}
}

@ -2,7 +2,6 @@ import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'package:crypto/crypto.dart'; import 'package:crypto/crypto.dart';
import 'package:dotted_dashed_line/dotted_dashed_line.dart';
import 'package:file_picker/file_picker.dart'; import 'package:file_picker/file_picker.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:smartfit_app_mobile/modele/api/i_data_strategy.dart'; import 'package:smartfit_app_mobile/modele/api/i_data_strategy.dart';
@ -10,14 +9,8 @@ import 'package:smartfit_app_mobile/modele/api/request_api.dart';
import 'package:smartfit_app_mobile/modele/activity.dart'; import 'package:smartfit_app_mobile/modele/activity.dart';
import 'package:smartfit_app_mobile/modele/manager_file.dart'; import 'package:smartfit_app_mobile/modele/manager_file.dart';
import 'package:smartfit_app_mobile/modele/user.dart'; import 'package:smartfit_app_mobile/modele/user.dart';
import 'package:smartfit_app_mobile/view/home/home_view.dart';
import 'package:smartfit_app_mobile/view/main_tab/main_tab_view.dart';
import 'package:smartfit_app_mobile/common_widget/round_button.dart';
import 'package:smartfit_app_mobile/common_widget/workout_row.dart'; import 'package:smartfit_app_mobile/common_widget/workout_row.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:simple_animation_progress_bar/simple_animation_progress_bar.dart';
import 'package:simple_circular_progress_bar/simple_circular_progress_bar.dart';
import 'package:tuple/tuple.dart'; import 'package:tuple/tuple.dart';
import '../../common/colo_extension.dart'; import '../../common/colo_extension.dart';
@ -195,7 +188,7 @@ class _ListActivityState extends State<ListActivity> {
) )
], ],
), ),
Provider.of<User>(context, listen: true).listActivity!.isEmpty Provider.of<User>(context, listen: true).listActivity.isEmpty
? Column( ? Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -215,12 +208,12 @@ class _ListActivityState extends State<ListActivity> {
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true, shrinkWrap: true,
itemCount: Provider.of<User>(context, listen: true) itemCount: Provider.of<User>(context, listen: true)
.listActivity! .listActivity
.length, .length,
itemBuilder: (context, index) { itemBuilder: (context, index) {
var activityObj = var activityObj =
Provider.of<User>(context, listen: true) Provider.of<User>(context, listen: true)
.listActivity![index] as ActivityOfUser; .listActivity[index] as ActivityOfUser;
var activityMap = activityObj.toMap(); var activityMap = activityObj.toMap();
return InkWell( return InkWell(
onTap: () { onTap: () {

@ -1,21 +0,0 @@
import 'package:flutter/material.dart';
import 'package:responsive_builder/responsive_builder.dart';
import 'package:smartfit_app_mobile/view/home/mobile/mobile_homeview.dart';
import 'package:smartfit_app_mobile/view/home/web/web_homeview.dart';
class HomeView extends StatefulWidget {
const HomeView({super.key});
@override
State<HomeView> createState() => _HomeViewState();
}
class _HomeViewState extends State<HomeView> {
@override
Widget build(BuildContext context) {
return ScreenTypeLayout.builder(
mobile: (_) => const MobileHomeView(),
desktop: (_) => const WebHomeView(),
);
}
}

@ -1,20 +0,0 @@
import 'package:responsive_builder/responsive_builder.dart';
import 'package:smartfit_app_mobile/view/login/mobile/android_login_view.dart';
import 'package:smartfit_app_mobile/view/login/web/web_login_view.dart';
import 'package:flutter/material.dart';
class LoginView extends StatefulWidget {
const LoginView({super.key});
@override
State<LoginView> createState() => _LoginViewState();
}
class _LoginViewState extends State<LoginView> {
@override
Widget build(BuildContext context) {
return ScreenTypeLayout.builder(
mobile: (_) => const MobileLoginView(),
desktop: (_) => const WebLoginView());
}
}

@ -1,21 +0,0 @@
import 'package:responsive_builder/responsive_builder.dart';
import 'package:smartfit_app_mobile/view/login/mobile/android_signup_view.dart';
import 'package:flutter/material.dart';
import 'package:smartfit_app_mobile/view/login/web/web_signup_view.dart';
class SignUpView extends StatefulWidget {
const SignUpView({super.key});
@override
State<SignUpView> createState() => _SignUpViewState();
}
class _SignUpViewState extends State<SignUpView> {
@override
Widget build(BuildContext context) {
return ScreenTypeLayout.builder(
mobile: (_) => const MobileSignUpView(),
desktop: (_) => const WebSignUpView(),
);
}
}

@ -1,3 +1,4 @@
import 'package:smartfit_app_mobile/view/activity/list_activity.dart';
import 'package:smartfit_app_mobile/common/colo_extension.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart';
import 'package:smartfit_app_mobile/common_widget/tab_button.dart'; import 'package:smartfit_app_mobile/common_widget/tab_button.dart';
import 'package:smartfit_app_mobile/view/activity/activity.dart'; import 'package:smartfit_app_mobile/view/activity/activity.dart';

@ -1,16 +1,15 @@
/*import 'dart:convert'; /*
import 'dart:convert';
import 'package:crypto/crypto.dart'; import 'package:crypto/crypto.dart';
import 'package:flutter/foundation.dart' show kIsWeb; import 'package:csv/csv.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
import 'package:file_picker/file_picker.dart'; import 'package:file_picker/file_picker.dart';
import 'package:provider/provider.dart';
import 'dart:io'; import 'dart:io';
import 'package:smartfit_app_mobile/modele/api/i_data_strategy.dart'; import 'package:smartfit_app_mobile/modele/api/i_data_strategy.dart';
import 'package:smartfit_app_mobile/modele/manager_file.dart';
import 'package:smartfit_app_mobile/modele/user.dart';
import 'package:smartfit_app_mobile/modele/api/request_api.dart'; import 'package:smartfit_app_mobile/modele/api/request_api.dart';
import 'package:smartfit_app_mobile/modele/manager_file.dart';
import 'package:tuple/tuple.dart'; import 'package:tuple/tuple.dart';
// ----------- File --------------- // // ----------- File --------------- //
@ -89,16 +88,15 @@ class _TestPage extends State<TestPage> {
print("t"); print("t");
} else { } else {
List<dynamic> result = await x.readFitFile(y!); List<dynamic> result = await x.readFitFile(y!);
print("test11");
print(result);
print("test22");
print(ActivityOfUser(result).getHeartRateWithTime());
print("test33");
Provider.of<User>(context, listen: false).addActivity(ActivityOfUser(result));
//print(x.getDistanceWithTime(ActivityOfUser(result))); //print(x.getDistanceWithTime(ActivityOfUser(result)));
//print(x.getDistance(ActivityOfUser(result))); //print(x.getDistance(ActivityOfUser(result)));
//print(x.getAltitudeWithTime(ActivityOfUser(result))); //print(x.getAltitudeWithTime(ActivityOfUser(result)));
//print(x.getSpeedWithTime(ActivityOfUser(result))); //print(x.getSpeedWithTime(ActivityOfUser(result)));
final csv = const ListToCsvConverter().convert(result.cast<List?>());
File f = File(await x.localPath + "/fit2.csv");
f.createSync();
await f.writeAsString(csv);
} }
} }
@ -228,8 +226,7 @@ class _TestPage extends State<TestPage> {
onPressed: createUser, child: const Text("Create User")), onPressed: createUser, child: const Text("Create User")),
ElevatedButton( ElevatedButton(
onPressed: deleteUser, child: const Text("Delete User")), onPressed: deleteUser, child: const Text("Delete User")),
ElevatedButton( ElevatedButton(onPressed: readFile, child: const Text("ReadFile")),
onPressed: readFile, child: const Text("ReadFile")),
ElevatedButton(onPressed: getFiles, child: const Text("getFiles")), ElevatedButton(onPressed: getFiles, child: const Text("getFiles")),
ElevatedButton( ElevatedButton(
onPressed: modifAttribut, child: const Text("modif attribut")), onPressed: modifAttribut, child: const Text("modif attribut")),
@ -405,4 +402,5 @@ class _MyHomePageState extends State<MyHomePage> {
), ),
); );
} }
}*/ }
*/

@ -1,21 +0,0 @@
import 'package:flutter/material.dart';
import 'package:responsive_builder/responsive_builder.dart';
import 'package:smartfit_app_mobile/view/profile/mobile/mobile_profile_view.dart';
import 'package:smartfit_app_mobile/view/profile/web/web_profile_view.dart';
class ProfileView extends StatefulWidget {
const ProfileView({super.key});
@override
State<ProfileView> createState() => _ProfileViewState();
}
class _ProfileViewState extends State<ProfileView> {
@override
Widget build(BuildContext context) {
return ScreenTypeLayout.builder(
mobile: (_) => const MobileProfileView(),
desktop: (_) => const WebProfileView(),
);
}
}
Loading…
Cancel
Save