passage sur pickFile pour le web

pull/4/head
Enzo 1 year ago
parent 52accae66e
commit fe6291de0e

@ -10,8 +10,8 @@ class ProfileInfoUser extends StatelessWidget {
children: [ children: [
Expanded( Expanded(
child: TitleSubtitleCell( child: TitleSubtitleCell(
title: "??? cm", title: "X",
subtitle: "Taille", subtitle: "Nombre d'activité",
), ),
), ),
SizedBox( SizedBox(
@ -19,8 +19,8 @@ class ProfileInfoUser extends StatelessWidget {
), ),
Expanded( Expanded(
child: TitleSubtitleCell( child: TitleSubtitleCell(
title: "?? kg", title: "h/j",
subtitle: "Poids", subtitle: "Temps en activité",
), ),
), ),
SizedBox( SizedBox(
@ -28,8 +28,17 @@ class ProfileInfoUser extends StatelessWidget {
), ),
Expanded( Expanded(
child: TitleSubtitleCell( child: TitleSubtitleCell(
title: "?? ans", title: "+ m",
subtitle: "Age", subtitle: "Total dénivelé positif",
),
),
SizedBox(
width: 15,
),
Expanded(
child: TitleSubtitleCell(
title: "- m",
subtitle: "Total dénivelé négatif",
), ),
), ),
], ],

@ -1,5 +1,4 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:io';
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:csv/csv.dart'; import 'package:csv/csv.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -90,10 +89,12 @@ class ListActivityUtile {
return true; return true;
} }
void addFileMobile( void preAddFile(Uint8List? bytes, String token, String filename,
String path, String token, String filename, BuildContext context) async { BuildContext context) async {
Tuple2<bool, String> resultAdd = if (bytes == null) {
await addFile(await File(path).readAsBytes(), filename, token); return;
}
Tuple2<bool, String> resultAdd = await addFile(bytes, filename, token);
if (!resultAdd.item1) { if (!resultAdd.item1) {
//print("Message error"); //print("Message error");
return; return;

@ -14,7 +14,6 @@ class MobileListActivity extends StatefulWidget {
} }
class _MobileListActivity extends State<MobileListActivity> { class _MobileListActivity extends State<MobileListActivity> {
FilePickerResult? result;
final ListActivityUtile _utile = ListActivityUtile(); final ListActivityUtile _utile = ListActivityUtile();
@override @override
@ -54,12 +53,12 @@ class _MobileListActivity extends State<MobileListActivity> {
onPressed: () async { onPressed: () async {
FilePickerResult? result = FilePickerResult? result =
await FilePicker.platform.pickFiles(); await FilePicker.platform.pickFiles();
if (result != null) { if (result != null && result.files.isNotEmpty) {
// ignore: use_build_context_synchronously // ignore: use_build_context_synchronously
_utile.addFileMobile( _utile.preAddFile(
result.files.single.path!, result.files.first.bytes,
Provider.of<User>(context, listen: false).token, Provider.of<User>(context, listen: false).token,
result.files.single.name, result.files.first.name,
context); context);
} else { } else {
print("Picker"); print("Picker");

@ -1,9 +1,6 @@
import 'dart:typed_data';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:smartfit_app_mobile/common_widget/container/list/list_activity_widget.dart'; import 'package:smartfit_app_mobile/common_widget/container/list/list_activity_widget.dart';
import 'package:smartfit_app_mobile/modele/utile/list_activity/list_activity_utile.dart'; import 'package:smartfit_app_mobile/modele/utile/list_activity/list_activity_utile.dart';
import 'package:tuple/tuple.dart';
import 'package:universal_html/html.dart' as html;
import 'package:file_picker/file_picker.dart'; import 'package:file_picker/file_picker.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -24,27 +21,6 @@ class _WebListActivityState extends State<WebListActivity> {
IDataStrategy strategy = RequestApi(); IDataStrategy strategy = RequestApi();
final ListActivityUtile _utile = ListActivityUtile(); final ListActivityUtile _utile = ListActivityUtile();
void addFileWeb(html.File file, String token) async {
final reader = html.FileReader();
reader.readAsArrayBuffer(file);
reader.onLoadEnd.listen((event) async {
if (reader.readyState == html.FileReader.DONE) {
Uint8List bytes = reader.result as Uint8List;
Tuple2<bool, String> resultAdd =
await _utile.addFile(bytes, file.name, token);
if (!resultAdd.item1) {
return;
}
Tuple2<bool, String> resultGet = await _utile.getFiles(token, context);
if (!resultGet.item1) {
//print("MessageError");
return;
}
}
});
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var media = MediaQuery.of(context).size; var media = MediaQuery.of(context).size;
@ -79,6 +55,21 @@ class _WebListActivityState extends State<WebListActivity> {
fontWeight: FontWeight.w700))), fontWeight: FontWeight.w700))),
TextButton( TextButton(
onPressed: () async { onPressed: () async {
FilePickerResult? result =
await FilePicker.platform.pickFiles();
if (result != null && result.files.isNotEmpty) {
_utile.preAddFile(
result.files.first.bytes,
Provider.of<User>(context, listen: false).token,
result.files.first.name,
context);
} else {
print("Picker");
// msg d'erreur
// User canceled the picker
}
/*
html.FileUploadInputElement uploadInput = html.FileUploadInputElement uploadInput =
html.FileUploadInputElement(); html.FileUploadInputElement();
uploadInput.click(); uploadInput.click();
@ -91,7 +82,7 @@ class _WebListActivityState extends State<WebListActivity> {
Provider.of<User>(context, listen: false) Provider.of<User>(context, listen: false)
.token); // Lecture du fichier sélectionné .token); // Lecture du fichier sélectionné
} }
}); });*/
}, },
child: Text( child: Text(
"Ajouter", "Ajouter",

@ -1,7 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:responsive_builder/responsive_builder.dart'; import 'package:responsive_builder/responsive_builder.dart';
import 'package:smartfit_app_mobile/modele/activity.dart';
import 'package:smartfit_app_mobile/modele/user.dart'; import 'package:smartfit_app_mobile/modele/user.dart';
import 'package:smartfit_app_mobile/view/home/mobile/mobile_homeview.dart'; import 'package:smartfit_app_mobile/view/home/mobile/mobile_homeview.dart';
import 'package:smartfit_app_mobile/view/home/no_activity_view.dart'; import 'package:smartfit_app_mobile/view/home/no_activity_view.dart';
@ -9,7 +8,7 @@ import 'package:smartfit_app_mobile/view/home/stats_activities_view.dart';
import 'package:smartfit_app_mobile/view/home/web/web_homeview.dart'; import 'package:smartfit_app_mobile/view/home/web/web_homeview.dart';
class HomeView extends StatefulWidget { class HomeView extends StatefulWidget {
const HomeView({Key? key}); const HomeView({super.key});
@override @override
State<HomeView> createState() => _HomeViewState(); State<HomeView> createState() => _HomeViewState();

@ -56,7 +56,6 @@ dependencies:
tuple: ^2.0.2 tuple: ^2.0.2
crypto: ^3.0.3 crypto: ^3.0.3
responsive_builder: ^0.7.0 responsive_builder: ^0.7.0
universal_html: ^2.2.4
flutter_map: ^5.0.0 flutter_map: ^5.0.0
latlong2: ^0.9.0 latlong2: ^0.9.0

Loading…
Cancel
Save