branche pour responsive web

profile
Othmane BENJELLOUN 1 year ago
parent d8f94a41c9
commit 8fe9101600

@ -19,11 +19,11 @@ class LigneContainerStats extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Row( return Row(
children: [ children: [
const SizedBox(height: 10), const SizedBox(width: 20),
ContainerStats(value1, designation1), ContainerStats(value1, designation1),
const SizedBox(height: 10), const SizedBox(width: 20),
ContainerStats(value2, designation2), ContainerStats(value2, designation2),
const SizedBox(height: 10), const SizedBox(width: 20),
ContainerStats(value3, designation3), ContainerStats(value3, designation3),
], ],
); );

@ -116,7 +116,7 @@ class _GraphBpmAndSpeedByTime extends State<GraphBpmAndSpeedByTime> {
return Container( return Container(
padding: const EdgeInsets.only(left: 15), padding: const EdgeInsets.only(left: 15),
height: widget.media.width * 0.5, height: widget.media.width * 0.3,
width: double.maxFinite, width: double.maxFinite,
child: LineChart( child: LineChart(
LineChartData( LineChartData(

@ -80,7 +80,7 @@ class _GraphBpmByTime extends State<GraphBpmByTime> {
return ClipRRect( return ClipRRect(
borderRadius: BorderRadius.circular(25), borderRadius: BorderRadius.circular(25),
child: Container( child: Container(
height: media.width * 0.4, height: media.width * 0.2,
width: double.maxFinite, width: double.maxFinite,
decoration: BoxDecoration( decoration: BoxDecoration(
color: TColor.primaryColor2.withOpacity(0.3), color: TColor.primaryColor2.withOpacity(0.3),

@ -1,5 +1,6 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'dart:typed_data';
import 'package:csv/csv.dart'; import 'package:csv/csv.dart';
import 'package:fit_tool/fit_tool.dart'; import 'package:fit_tool/fit_tool.dart';
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
@ -26,7 +27,10 @@ class ManagerFile {
return fitFile.toRows(); return fitFile.toRows();
} }
List<dynamic> readFitFileWeb(Uint8List bytes) {
final fitFile = FitFile.fromBytes(bytes);
return fitFile.toRows();
}
// ------------- Get The path of application --- // // ------------- Get The path of application --- //
Future<String> get localPath async { Future<String> get localPath async {
final directory = await getApplicationDocumentsDirectory(); final directory = await getApplicationDocumentsDirectory();

@ -13,7 +13,7 @@ class HomeViewUtil {
List<FlSpot> bpmSecondes2 = List.from(bpmSecondes); List<FlSpot> bpmSecondes2 = List.from(bpmSecondes);
return DataHomeView( return DataHomeView(
normaliserDeuxiemeElement(bpmSecondes), bpmSecondes,
normaliserDeuxiemeElement(bpmSecondes2), normaliserDeuxiemeElement(bpmSecondes2),
normaliserDeuxiemeElement(vitesseSecondes)); normaliserDeuxiemeElement(vitesseSecondes));
} }

@ -1,3 +1,10 @@
import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'dart:html' as html; // Importation des fonctionnalités HTML
import 'package:crypto/crypto.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/common/colo_extension.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart';
@ -8,38 +15,43 @@ 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/common_widget/container/workout_row.dart'; import 'package:smartfit_app_mobile/common_widget/container/workout_row.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:tuple/tuple.dart';
class WebListActivity extends StatefulWidget { class WebListActivity extends StatefulWidget {
const WebListActivity({super.key}); const WebListActivity({super.key});
@override @override
State<WebListActivity> createState() => _WebListActivity(); State<WebListActivity> createState() => _WebListActivityState();
} }
class _WebListActivity extends State<WebListActivity> { class _WebListActivityState extends State<WebListActivity> {
FilePickerResult? result; FilePickerResult? result;
IDataStrategy strategy = RequestApi(); IDataStrategy strategy = RequestApi();
Future<void> readFile(String nom) async { //late File x = File(file.path);
List<String> parseFile(Uint8List bytes) {
String csvString = utf8.decode(bytes); // Convertit les bytes en chaîne UTF-8
List<String> lines = LineSplitter.split(csvString).toList(); // Sépare les lignes
for (String line in lines) {
print(line); // Affiche chaque ligne du fichier
}
return lines; // Ou retournez les lignes du fichier
}
void readFile(html.File file) async {
ManagerFile x = ManagerFile(); ManagerFile x = ManagerFile();
PlatformFile t = result!.files.single; final reader = html.FileReader();
String? y = t.path; reader.readAsArrayBuffer(file);
if (t.path == null) { reader.onLoadEnd.listen((event) {
print("t"); if (reader.readyState == html.FileReader.DONE) {
} else { Uint8List bytes = reader.result as Uint8List;
List<dynamic> result = await x.readFitFile(y!); List<dynamic> result = x.readFitFileWeb(bytes) ;
print("test11");
print(result);
print("test22");
print(ActivityOfUser(nom, result).getHeartRateWithTime());
print("test33");
Provider.of<User>(context, listen: false) Provider.of<User>(context, listen: false)
.addActivity(ActivityOfUser(nom, result)); .addActivity(ActivityOfUser(file.name, result ));
//print(x.getDistanceWithTime(ActivityOfUser(result)));
//print(x.getDistance(ActivityOfUser(result)));
//print(x.getAltitudeWithTime(ActivityOfUser(result)));
//print(x.getSpeedWithTime(ActivityOfUser(result)));
} }
});
} }
List lastWorkoutArr = []; List lastWorkoutArr = [];
@ -70,15 +82,15 @@ class _WebListActivity extends State<WebListActivity> {
), ),
TextButton( TextButton(
onPressed: () async { onPressed: () async {
result = await FilePicker.platform.pickFiles(); html.FileUploadInputElement uploadInput = html.FileUploadInputElement();
if (result == null) { uploadInput.click();
print("No file selected");
} else { uploadInput.onChange.listen((e) {
for (var element in result!.files) { final files = uploadInput.files;
readFile(element.name); if (files != null && files.isNotEmpty) {
print(element.name); readFile(files[0]); // Lecture du fichier sélectionné
}
} }
});
}, },
child: Text( child: Text(
"Ajouter", "Ajouter",
@ -148,4 +160,6 @@ class _WebListActivity extends State<WebListActivity> {
), ),
); );
} }
} }

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save