From 1c3596e3fd9eb78b7fae3a24259f3c6606c13bd1 Mon Sep 17 00:00:00 2001 From: Enzo Date: Thu, 30 Nov 2023 11:08:48 +0100 Subject: [PATCH] duplication listActivity --- .../container/list/list_activity.dart | 81 ++++++++++++++ .../list_activity/list_activity_utile.dart | 24 ++++ .../activity/mobile/mobile_list_activity.dart | 104 +----------------- lib/view/activity/web/web_list_activity.dart | 82 +------------- 4 files changed, 113 insertions(+), 178 deletions(-) create mode 100644 lib/common_widget/container/list/list_activity.dart diff --git a/lib/common_widget/container/list/list_activity.dart b/lib/common_widget/container/list/list_activity.dart new file mode 100644 index 0000000..f04d84b --- /dev/null +++ b/lib/common_widget/container/list/list_activity.dart @@ -0,0 +1,81 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:smartfit_app_mobile/common_widget/container/workout_row.dart'; +import 'package:smartfit_app_mobile/modele/user.dart'; +import 'package:smartfit_app_mobile/modele/utile/list_activity/list_activity_utile.dart'; +import 'package:tuple/tuple.dart'; + +class ListActivity extends StatefulWidget { + const ListActivity({Key? key}) : super(key: key); + + @override + State createState() => _ListActivity(); +} + +class _ListActivity extends State { + final ListActivityUtile _utile = ListActivityUtile(); + + @override + Widget build(BuildContext context) { + return Material( + color: Colors.transparent, + child: ListView.builder( + padding: EdgeInsets.zero, + physics: const NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: Provider.of(context, listen: true).listActivity.length, + itemBuilder: (context, index) { + var activityObj = + Provider.of(context, listen: true).listActivity[index]; + var activityMap = activityObj.toMap(); + + return InkWell( + onTap: () {}, + child: WorkoutRow( + wObj: activityMap, + onDelete: () async { + if (await _utile.deleteFileOnBDD( + Provider.of(context, listen: false).token, + activityObj.fileUuid)) { + if (!Provider.of(context, listen: false) + .managerSelectedActivity + .fileNotSelected(activityObj.fileUuid)) { + Provider.of(context, listen: false) + .managerSelectedActivity + .removeSelectedActivity(activityObj.fileUuid); + } + Provider.of(context, listen: false) + .removeActivity(activityObj); + } + }, + onClick: () async { + if (!Provider.of(context, listen: false) + .managerSelectedActivity + .fileNotSelected(activityObj.fileUuid)) { + Provider.of(context, listen: false) + .managerSelectedActivity + .removeSelectedActivity(activityObj.fileUuid); + return; + } + + Tuple2 result = + await _utile.getContentActivity(context, activityObj); + if (!result.item1) { + return; + } + + Provider.of(context, listen: false) + .removeActivity(activityObj); + Provider.of(context, listen: false) + .insertActivity(0, activityObj); + }, + isSelected: !Provider.of(context) + .managerSelectedActivity + .fileNotSelected(activityObj.fileUuid), + ), + ); + }, + ), + ); + } +} diff --git a/lib/modele/utile/list_activity/list_activity_utile.dart b/lib/modele/utile/list_activity/list_activity_utile.dart index 512280e..025b580 100644 --- a/lib/modele/utile/list_activity/list_activity_utile.dart +++ b/lib/modele/utile/list_activity/list_activity_utile.dart @@ -1,4 +1,5 @@ import 'dart:convert'; +import 'dart:io'; import 'dart:typed_data'; import 'package:csv/csv.dart'; import 'package:flutter/material.dart'; @@ -77,4 +78,27 @@ class ListActivityUtile { } return const Tuple2(true, "Yeah"); } + + Future deleteFileOnBDD(String token, String fileUuid) async { + Tuple2 result = await _strategy.deleteFile(token, fileUuid); + if (!result.item1) { + return false; + } + return true; + } + + void addFileMobile( + String path, String token, String filename, BuildContext context) async { + Tuple2 resultAdd = + await addFile(await File(path).readAsBytes(), filename, token); + if (!resultAdd.item1) { + //print("Message error"); + return; + } + Tuple2 resultGet = await getFiles(token, context); + if (!resultGet.item1) { + //print("Message error"); + return; + } + } } diff --git a/lib/view/activity/mobile/mobile_list_activity.dart b/lib/view/activity/mobile/mobile_list_activity.dart index 868ccf0..91edcb0 100644 --- a/lib/view/activity/mobile/mobile_list_activity.dart +++ b/lib/view/activity/mobile/mobile_list_activity.dart @@ -1,14 +1,10 @@ -import 'dart:io'; import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:smartfit_app_mobile/common/colo_extension.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/common_widget/container/list/list_activity.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/modele/utile/list_activity/list_activity_utile.dart'; -import 'package:tuple/tuple.dart'; class MobileListActivity extends StatefulWidget { const MobileListActivity({Key? key}) : super(key: key); @@ -19,31 +15,8 @@ class MobileListActivity extends StatefulWidget { class _MobileListActivity extends State { FilePickerResult? result; - final IDataStrategy _strategy = RequestApi(); final ListActivityUtile _utile = ListActivityUtile(); - Future deleteFileOnBDD(String token, String fileUuid) async { - Tuple2 result = await _strategy.deleteFile(token, fileUuid); - if (!result.item1) { - return false; - } - return true; - } - - void addFileMobile(String path, String token, String filename) async { - Tuple2 resultAdd = - await _utile.addFile(await File(path).readAsBytes(), filename, token); - if (!resultAdd.item1) { - //print("Message error"); - return; - } - Tuple2 resultGet = await _utile.getFiles(token, context); - if (!resultGet.item1) { - //print("Message error"); - return; - } - } - @override Widget build(BuildContext context) { var media = MediaQuery.of(context).size; @@ -82,10 +55,12 @@ class _MobileListActivity extends State { FilePickerResult? result = await FilePicker.platform.pickFiles(); if (result != null) { - addFileMobile( + // ignore: use_build_context_synchronously + _utile.addFileMobile( result.files.single.path!, Provider.of(context, listen: false).token, - result.files.single.name); + result.files.single.name, + context); } else { print("Picker"); // msg d'erreur @@ -117,74 +92,7 @@ class _MobileListActivity extends State { ), ) ]) - : Material( - color: Colors.transparent, - child: ListView.builder( - padding: EdgeInsets.zero, - physics: const NeverScrollableScrollPhysics(), - shrinkWrap: true, - itemCount: Provider.of(context, listen: true) - .listActivity - .length, - itemBuilder: (context, index) { - var activityObj = - Provider.of(context, listen: true) - .listActivity[index]; - var activityMap = activityObj.toMap(); - - return InkWell( - onTap: () {}, - child: WorkoutRow( - wObj: activityMap, - onDelete: () async { - if (await deleteFileOnBDD( - Provider.of(context, listen: false) - .token, - activityObj.fileUuid)) { - if (!Provider.of(context, - listen: false) - .managerSelectedActivity - .fileNotSelected( - activityObj.fileUuid)) { - Provider.of(context, listen: false) - .managerSelectedActivity - .removeSelectedActivity( - activityObj.fileUuid); - } - Provider.of(context, listen: false) - .removeActivity(activityObj); - } - }, - onClick: () async { - if (!Provider.of(context, listen: false) - .managerSelectedActivity - .fileNotSelected(activityObj.fileUuid)) { - Provider.of(context, listen: false) - .managerSelectedActivity - .removeSelectedActivity( - activityObj.fileUuid); - return; - } - - Tuple2 result = await _utile - .getContentActivity(context, activityObj); - if (!result.item1) { - return; - } - - Provider.of(context, listen: false) - .removeActivity(activityObj); - Provider.of(context, listen: false) - .insertActivity(0, activityObj); - }, - isSelected: !Provider.of(context) - .managerSelectedActivity - .fileNotSelected(activityObj.fileUuid), - ), - ); - }, - ), - ), + : const ListActivity(), SizedBox( height: media.width * 0.1, ), diff --git a/lib/view/activity/web/web_list_activity.dart b/lib/view/activity/web/web_list_activity.dart index de15154..9e7efe4 100644 --- a/lib/view/activity/web/web_list_activity.dart +++ b/lib/view/activity/web/web_list_activity.dart @@ -1,6 +1,7 @@ import 'dart:typed_data'; import 'package:flutter/material.dart'; import 'package:smartfit_app_mobile/modele/utile/list_activity/list_activity_utile.dart'; +import 'package:smartfit_app_mobile/view/activity/list_activity.dart'; import 'package:tuple/tuple.dart'; import 'package:universal_html/html.dart' as html; @@ -10,7 +11,6 @@ import 'package:smartfit_app_mobile/common/colo_extension.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/user.dart'; -import 'package:smartfit_app_mobile/common_widget/container/workout_row.dart'; class WebListActivity extends StatefulWidget { const WebListActivity({super.key}); @@ -23,18 +23,6 @@ class _WebListActivityState extends State { FilePickerResult? result; IDataStrategy strategy = RequestApi(); final ListActivityUtile _utile = ListActivityUtile(); - final IDataStrategy _strategy = RequestApi(); - - Future deleteFileOnBDD(String token, String fileUuid) async { - Tuple2 result = await _strategy.deleteFile(token, fileUuid); - if (!result.item1) { - //print(fileUuid); - //print("msg d'erreur"); - //print(result.item2); - return false; - } - return true; - } void addFileWeb(html.File file, String token) async { final reader = html.FileReader(); @@ -130,73 +118,7 @@ class _WebListActivityState extends State { ), ) ]) - : Material( - color: Colors.transparent, - child: ListView.builder( - padding: EdgeInsets.zero, - physics: const NeverScrollableScrollPhysics(), - shrinkWrap: true, - itemCount: Provider.of(context, listen: true) - .listActivity - .length, - itemBuilder: (context, index) { - var activityObj = - Provider.of(context, listen: true) - .listActivity[index]; - var activityMap = activityObj.toMap(); - return InkWell( - onTap: () {}, - child: WorkoutRow( - wObj: activityMap, - onDelete: () async { - if (await deleteFileOnBDD( - Provider.of(context, listen: false) - .token, - activityObj.fileUuid)) { - if (!Provider.of(context, - listen: false) - .managerSelectedActivity - .fileNotSelected( - activityObj.fileUuid)) { - Provider.of(context, listen: false) - .managerSelectedActivity - .removeSelectedActivity( - activityObj.fileUuid); - } - Provider.of(context, listen: false) - .removeActivity(activityObj); - } - }, - onClick: () async { - if (!Provider.of(context, listen: false) - .managerSelectedActivity - .fileNotSelected(activityObj.fileUuid)) { - Provider.of(context, listen: false) - .managerSelectedActivity - .removeSelectedActivity( - activityObj.fileUuid); - return; - } - - Tuple2 result = await _utile - .getContentActivity(context, activityObj); - if (!result.item1) { - return; - } - - Provider.of(context, listen: false) - .removeActivity(activityObj); - Provider.of(context, listen: false) - .insertActivity(0, activityObj); - }, - isSelected: Provider.of(context) - .managerSelectedActivity - .fileNotSelected(activityObj.fileUuid), - ), - ); - }, - ), - ), + : const ListActivity(), SizedBox( height: media.width * 0.1, ),