Fonctionne de activity avec le managerFile

pull/1/head
Enzo 2 years ago
parent 46bee78f41
commit 2a6af7dbdc

@ -1,11 +1,11 @@
class Activity { class ActivityOfUser {
final String _type = "Default"; final String _type = "Default";
late List<dynamic> _contentActivity; late List<dynamic> _contentActivity;
List<dynamic> get contentActivity => _contentActivity; List<dynamic> get contentActivity => _contentActivity;
Activity(List<Activity> contentActivity) { ActivityOfUser(List<dynamic> listeDynamic) {
_contentActivity = contentActivity; _contentActivity = listeDynamic;
} }
} }

@ -5,24 +5,24 @@ import 'package:fit_tool/fit_tool.dart';
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
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/Api/request_api.dart'; import 'package:smartfit_app_mobile/Modele/Api/request_api.dart';
import 'package:smartfit_app_mobile/Modele/activity.dart';
class ManagerFile { class ManagerFile {
final IDataStrategy _dataStrategy = RequestApi(); final IDataStrategy _dataStrategy = RequestApi();
List<dynamic>? _contentFile; //List<dynamic>? _contentFile;
List<dynamic>? get contentFile => _contentFile; //List<dynamic>? get contentFile => _contentFile;
// ----- // // ----- //
// ----- Read csv File ------- // // ----- Read csv File ------- //
Future<bool> readCSVFile(String path) async { Future<List<dynamic>> readCSVFile(String path) async {
if (File(path).exists() == false) return false; if (File(path).exists() == false) return List.empty();
final input = File(path).openRead(); final input = File(path).openRead();
final fields = await input final fields = await input
.transform(utf8.decoder) .transform(utf8.decoder)
.transform(const CsvToListConverter()) .transform(const CsvToListConverter())
.toList(); .toList();
_contentFile = fields; return fields;
return true;
} }
// ------ Import File and save it in BDD // ------ Import File and save it in BDD
@ -32,16 +32,15 @@ class ManagerFile {
return true; return true;
} }
// ----- Read a file FIT and put the result in _contentFile --- // // ----- Read a file FIT --- //
Future<bool> readFitFile(String path) async { Future<List<dynamic>> readFitFile(String path) async {
if (File(path).existsSync() == false) return false; if (File(path).existsSync() == false) return List.empty();
final file = File(path); final file = File(path);
final bytes = await file.readAsBytes(); final bytes = await file.readAsBytes();
final fitFile = FitFile.fromBytes(bytes); final fitFile = FitFile.fromBytes(bytes);
_contentFile = fitFile.toRows(); return fitFile.toRows();
return true;
} }
// ------------- Get The path of application --- // // ------------- Get The path of application --- //
@ -51,12 +50,12 @@ class ManagerFile {
} }
// --- A modifier si utilisé --- // // --- A modifier si utilisé --- //
Future<bool> writeFileWithContentFile(String nameFileWithExtension) async { Future<bool> writeFile(String nameFileWithExtension, File file) async {
final outFile = File("${await _localPath}\\Files\\$nameFileWithExtension"); final outFile = File("${await _localPath}\\Files\\$nameFileWithExtension");
if (outFile.existsSync() == false) { if (outFile.existsSync() == false) {
outFile.createSync(recursive: true); outFile.createSync(recursive: true);
} }
await outFile.writeAsString(_contentFile.toString()); await outFile.writeAsString(await file.readAsString());
return true; return true;
} }
@ -66,13 +65,11 @@ class ManagerFile {
// ---------------- Fonction to get data --------- // // ---------------- Fonction to get data --------- //
List<List<int>> getHeartRateWithTime() { List<List<int>> getHeartRateWithTime(ActivityOfUser activity) {
List<List<int>> result = List.empty(growable: true); List<List<int>> result = List.empty(growable: true);
int firtTimeStamp = 0; int firtTimeStamp = 0;
if (_contentFile == null) return result; for (List<dynamic> ligne in activity.contentActivity) {
for (List<dynamic> ligne in contentFile!) {
if (ligne.length >= 10 && if (ligne.length >= 10 &&
ligne[0] == "Data" && ligne[0] == "Data" &&
ligne[9] == "heart_rate") { ligne[9] == "heart_rate") {

@ -6,12 +6,12 @@ class User extends ChangeNotifier {
late String _username; late String _username;
late String _email; late String _email;
late String _passwordHash; late String _passwordHash;
late List<Activity> _listActivity; late List<ActivityOfUser> _listActivity;
String get username => _username; String get username => _username;
String get email => _email; String get email => _email;
String get passwordHash => _passwordHash; String get passwordHash => _passwordHash;
List<Activity> get listActivity => _listActivity; List<ActivityOfUser> get listActivity => _listActivity;
User(String username, String email, String passwordHash) { User(String username, String email, String passwordHash) {
_username = username; _username = username;

@ -1,9 +1,12 @@
import 'dart:ffi';
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 'dart:io'; import 'dart:io';
import 'package:provider/provider.dart'; import 'package:provider/provider.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';
@ -64,8 +67,8 @@ class _TestPage extends State<TestPage> {
if (t.path == null) { if (t.path == null) {
print("t"); print("t");
} else { } else {
bool o = await x.readFitFile(y!); List<dynamic> result = await x.readFitFile(y!);
print(x.getHeartRateWithTime()); print(x.getHeartRateWithTime(ActivityOfUser(result)));
} }
} }

Loading…
Cancel
Save