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) {
return Row(
children: [
const SizedBox(height: 10),
const SizedBox(width: 20),
ContainerStats(value1, designation1),
const SizedBox(height: 10),
const SizedBox(width: 20),
ContainerStats(value2, designation2),
const SizedBox(height: 10),
const SizedBox(width: 20),
ContainerStats(value3, designation3),
],
);

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

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

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

@ -13,7 +13,7 @@ class HomeViewUtil {
List<FlSpot> bpmSecondes2 = List.from(bpmSecondes);
return DataHomeView(
normaliserDeuxiemeElement(bpmSecondes),
bpmSecondes,
normaliserDeuxiemeElement(bpmSecondes2),
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:provider/provider.dart';
import 'package:smartfit_app_mobile/common/colo_extension.dart';
@ -8,40 +15,45 @@ import 'package:smartfit_app_mobile/modele/manager_file.dart';
import 'package:smartfit_app_mobile/modele/user.dart';
import 'package:smartfit_app_mobile/common_widget/container/workout_row.dart';
import 'package:flutter/material.dart';
import 'package:tuple/tuple.dart';
class WebListActivity extends StatefulWidget {
const WebListActivity({super.key});
@override
State<WebListActivity> createState() => _WebListActivity();
State<WebListActivity> createState() => _WebListActivityState();
}
class _WebListActivity extends State<WebListActivity> {
class _WebListActivityState extends State<WebListActivity> {
FilePickerResult? result;
IDataStrategy strategy = RequestApi();
Future<void> readFile(String nom) async {
ManagerFile x = ManagerFile();
PlatformFile t = result!.files.single;
String? y = t.path;
if (t.path == null) {
print("t");
} else {
List<dynamic> result = await x.readFitFile(y!);
print("test11");
print(result);
print("test22");
print(ActivityOfUser(nom, result).getHeartRateWithTime());
print("test33");
Provider.of<User>(context, listen: false)
.addActivity(ActivityOfUser(nom, result));
//print(x.getDistanceWithTime(ActivityOfUser(result)));
//print(x.getDistance(ActivityOfUser(result)));
//print(x.getAltitudeWithTime(ActivityOfUser(result)));
//print(x.getSpeedWithTime(ActivityOfUser(result)));
//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();
final reader = html.FileReader();
reader.readAsArrayBuffer(file);
reader.onLoadEnd.listen((event) {
if (reader.readyState == html.FileReader.DONE) {
Uint8List bytes = reader.result as Uint8List;
List<dynamic> result = x.readFitFileWeb(bytes) ;
Provider.of<User>(context, listen: false)
.addActivity(ActivityOfUser(file.name, result ));
}
});
}
List lastWorkoutArr = [];
@override
@ -70,15 +82,15 @@ class _WebListActivity extends State<WebListActivity> {
),
TextButton(
onPressed: () async {
result = await FilePicker.platform.pickFiles();
if (result == null) {
print("No file selected");
} else {
for (var element in result!.files) {
readFile(element.name);
print(element.name);
html.FileUploadInputElement uploadInput = html.FileUploadInputElement();
uploadInput.click();
uploadInput.onChange.listen((e) {
final files = uploadInput.files;
if (files != null && files.isNotEmpty) {
readFile(files[0]); // Lecture du fichier sélectionné
}
}
});
},
child: Text(
"Ajouter",
@ -147,5 +159,7 @@ class _WebListActivity extends State<WebListActivity> {
),
),
);
}
}
}
}

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