From aa6e0b02ad91d9b803265e07ec73ddc3adc0fa3b Mon Sep 17 00:00:00 2001 From: otbenjello Date: Thu, 9 Nov 2023 11:22:45 +0100 Subject: [PATCH 01/11] gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 155e13b..3e48b46 100644 --- a/.gitignore +++ b/.gitignore @@ -106,6 +106,7 @@ unlinked_spec.ds # Coverage coverage/ +flutter/ # Symbols app.*.symbols From 7574ace86f29861a202b97370c0e9514e9aad3a6 Mon Sep 17 00:00:00 2001 From: otbenjello Date: Thu, 9 Nov 2023 15:38:46 +0100 Subject: [PATCH 02/11] dad --- lib/Modele/Mds/DeviceModel.dart | 1 - lib/Modele/user.dart | 4 ++++ lib/View/home/home_view.dart | 19 +++++++++++-------- lib/View/page_test.dart | 5 +++++ 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/lib/Modele/Mds/DeviceModel.dart b/lib/Modele/Mds/DeviceModel.dart index a9a9363..e99fb1d 100644 --- a/lib/Modele/Mds/DeviceModel.dart +++ b/lib/Modele/Mds/DeviceModel.dart @@ -19,4 +19,3 @@ class DeviceModel extends ChangeNotifier { } } */ -*/ \ No newline at end of file diff --git a/lib/Modele/user.dart b/lib/Modele/user.dart index a4303fb..70d78ff 100644 --- a/lib/Modele/user.dart +++ b/lib/Modele/user.dart @@ -19,4 +19,8 @@ class User extends ChangeNotifier { _passwordHash = passwordHash; _listActivity = List.empty(growable: true); } + + void addActivity(ActivityOfUser activity) { + listActivity.add(activity); + } } diff --git a/lib/View/home/home_view.dart b/lib/View/home/home_view.dart index 64d0df2..297ff41 100644 --- a/lib/View/home/home_view.dart +++ b/lib/View/home/home_view.dart @@ -1,4 +1,7 @@ import 'package:dotted_dashed_line/dotted_dashed_line.dart'; +import 'package:provider/provider.dart'; +import 'package:smartfit_app_mobile/Modele/manager_file.dart'; +import 'package:smartfit_app_mobile/Modele/user.dart'; import 'package:smartfit_app_mobile/common_widget/round_button.dart'; import 'package:fl_chart/fl_chart.dart'; import 'package:flutter/material.dart'; @@ -19,7 +22,10 @@ class HomeView extends StatefulWidget { State createState() => _HomeViewState(); } + + class _HomeViewState extends State { + List allSpots = [FlSpot(0, 30),FlSpot(2, 20)]; List lastWorkoutArr = [ { "name": "Full Body Workout", @@ -43,9 +49,7 @@ class _HomeViewState extends State { "progress": 0.7 }, ]; - List showingTooltipOnSpots = [21]; - - List allSpots = [FlSpot(0, 20)]; + List showingTooltipOnSpots = [0]; List waterArr = [ {"title": "6am - 8am", "subtitle": "600ml"}, @@ -57,7 +61,10 @@ class _HomeViewState extends State { @override Widget build(BuildContext context) { + ManagerFile m = ManagerFile(); var media = MediaQuery.of(context).size; + print(m.getHeartRateWithTime(Provider.of(context).listActivity[0])); + allSpots = m.getHeartRateWithTime(Provider.of(context).listActivity[0]); final lineBarsData = [ LineChartBarData( @@ -883,11 +890,7 @@ class _HomeViewState extends State { ); } - void updateChartData(List newData) { - setState(() { - allSpots = newData; - }); - } + List showingSections() { diff --git a/lib/View/page_test.dart b/lib/View/page_test.dart index 3c1c61a..30aabbc 100644 --- a/lib/View/page_test.dart +++ b/lib/View/page_test.dart @@ -7,6 +7,7 @@ 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/user.dart'; +import 'package:smartfit_app_mobile/View/home/home_view.dart'; // ----------- File --------------- // @@ -70,6 +71,10 @@ class _TestPage extends State { //print(x.getDistanceWithTime(ActivityOfUser(result))); //print(x.getDistance(ActivityOfUser(result))); print(x.getAltitudeWithTime(ActivityOfUser(result))); + Provider.of(context).addActivity(ActivityOfUser(result)); + print("lalala"); + + print(result); } } From 6a787a87d9de44400a7367a6635360f0277aa720 Mon Sep 17 00:00:00 2001 From: otbenjello Date: Fri, 10 Nov 2023 09:12:43 +0100 Subject: [PATCH 03/11] premier graphe fonctionnel (rythme cardiaque) --- lib/Modele/user.dart | 1 + lib/View/home/home_view.dart | 62 ++++++++++++++++------------ lib/View/main_tab/main_tab_view.dart | 2 +- lib/View/page_test.dart | 9 ++-- 4 files changed, 44 insertions(+), 30 deletions(-) diff --git a/lib/Modele/user.dart b/lib/Modele/user.dart index 70d78ff..4deb551 100644 --- a/lib/Modele/user.dart +++ b/lib/Modele/user.dart @@ -22,5 +22,6 @@ class User extends ChangeNotifier { void addActivity(ActivityOfUser activity) { listActivity.add(activity); + notifyListeners(); } } diff --git a/lib/View/home/home_view.dart b/lib/View/home/home_view.dart index a141e1a..d6fb16f 100644 --- a/lib/View/home/home_view.dart +++ b/lib/View/home/home_view.dart @@ -24,7 +24,9 @@ class HomeView extends StatefulWidget { class _HomeViewState extends State { - List allSpots = [FlSpot(0, 30),FlSpot(2, 20)]; + List allSpots = [FlSpot(0, 30)]; + TextEditingController bpmController = TextEditingController(); + List lastWorkoutArr = [ { "name": "Full Body Workout", @@ -60,14 +62,27 @@ class _HomeViewState extends State { @override Widget build(BuildContext context) { + print("test1"); + ManagerFile m = ManagerFile(); + print("test2"); + var media = MediaQuery.of(context).size; - print(m.getHeartRateWithTime(Provider.of(context).listActivity[0])); - allSpots = m.getHeartRateWithTime(Provider.of(context).listActivity[0]); + print("test3"); + + + + if (Provider.of(context, listen: true).listActivity.isNotEmpty) { + print("rempli"); + allSpots = m.getHeartRateWithTime(Provider.of(context).listActivity[0]); + } else { + print("vide"); + } + print("test4"); + final lineBarsData = [ LineChartBarData( - showingIndicators: showingTooltipOnSpots, spots: allSpots, isCurved: false, barWidth: 2, @@ -84,6 +99,7 @@ class _HomeViewState extends State { ), ), ]; + print("test5"); final tooltipsOnBar = lineBarsData[0]; @@ -283,31 +299,25 @@ class _HomeViewState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - "Graph 2 ( rhythme cardiaque )", + "Rhythme cardiaque", style: TextStyle( color: TColor.black, fontSize: 16, fontWeight: FontWeight.w700), ), - ShaderMask( - blendMode: BlendMode.srcIn, - shaderCallback: (bounds) { - return LinearGradient( - colors: TColor.primaryG, - begin: Alignment.centerLeft, - end: Alignment.centerRight) - .createShader(Rect.fromLTRB( - 0, 0, bounds.width, bounds.height)); - }, - child: Text( - "78 BPM", - style: TextStyle( + TextField( + controller: bpmController, + readOnly: true, + style: TextStyle( color: - TColor.primaryColor1.withOpacity(0.7), + TColor.primaryColor1.withOpacity(0.8), fontWeight: FontWeight.w700, fontSize: 18), + decoration: InputDecoration( + border: InputBorder.none, // Ajoutez cette ligne pour supprimer la bordure + ), ), - ), + ], ), ), @@ -374,12 +384,12 @@ class _HomeViewState extends State { touchTooltipData: LineTouchTooltipData( tooltipBgColor: TColor.secondaryColor1, tooltipRoundedRadius: 20, - getTooltipItems: - (List lineBarsSpot) { + getTooltipItems: (List lineBarsSpot) { return lineBarsSpot.map((lineBarSpot) { + bpmController.text = "${lineBarSpot.y} BPM"; return LineTooltipItem( - "il y a ${lineBarSpot.x.toInt()} minutes", - const TextStyle( + "Seconde ${lineBarSpot.x.toInt() / 10}", + TextStyle( color: Colors.white, fontSize: 10, fontWeight: FontWeight.bold, @@ -390,8 +400,8 @@ class _HomeViewState extends State { ), ), lineBarsData: lineBarsData, - minY: 0, - maxY: 130, + minY: 50, + maxY: 250, titlesData: FlTitlesData( show: false, ), diff --git a/lib/View/main_tab/main_tab_view.dart b/lib/View/main_tab/main_tab_view.dart index 85e45f1..cd1788f 100644 --- a/lib/View/main_tab/main_tab_view.dart +++ b/lib/View/main_tab/main_tab_view.dart @@ -29,7 +29,7 @@ class _MainTabViewState extends State { height: 70, child: InkWell( onTap: () { - selectTab = 0; + selectTab = 4; currentTab = const TestPage(); if (mounted) { setState(() {}); diff --git a/lib/View/page_test.dart b/lib/View/page_test.dart index 10dcee2..5714b4a 100644 --- a/lib/View/page_test.dart +++ b/lib/View/page_test.dart @@ -67,13 +67,16 @@ class _TestPage extends State { print("t"); } else { List result = await x.readFitFile(y!); + print("test11"); print(result); + print("test22"); print(x.getHeartRateWithTime(ActivityOfUser(result))); + print("test33"); //print(x.getDistanceWithTime(ActivityOfUser(result))); //print(x.getDistance(ActivityOfUser(result))); - print(x.getAltitudeWithTime(ActivityOfUser(result))); - Provider.of(context).addActivity(ActivityOfUser(result)); - print("lalala"); + print("test44"); + Provider.of(context, listen: false).addActivity(ActivityOfUser(result)); + print("test55"); print(result); } From 74abe807b5e7480e06ee2ca805d99fa3287ffaac Mon Sep 17 00:00:00 2001 From: otbenjello Date: Fri, 10 Nov 2023 09:24:45 +0100 Subject: [PATCH 04/11] rapide commit --- lib/View/home/home_view.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/View/home/home_view.dart b/lib/View/home/home_view.dart index d6fb16f..8b24a83 100644 --- a/lib/View/home/home_view.dart +++ b/lib/View/home/home_view.dart @@ -299,7 +299,7 @@ class _HomeViewState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - "Rhythme cardiaque", + "Rythme cardiaque", style: TextStyle( color: TColor.black, fontSize: 16, From d4ae733187cd8e4d74e393a6f03e768bcfe8d45e Mon Sep 17 00:00:00 2001 From: otbenjello Date: Fri, 10 Nov 2023 10:43:07 +0100 Subject: [PATCH 05/11] 2eme graphe bpm et vitesse --- lib/View/home/home_view.dart | 98 +++++++++++++++--------------------- 1 file changed, 40 insertions(+), 58 deletions(-) diff --git a/lib/View/home/home_view.dart b/lib/View/home/home_view.dart index 8b24a83..aca893c 100644 --- a/lib/View/home/home_view.dart +++ b/lib/View/home/home_view.dart @@ -24,9 +24,30 @@ class HomeView extends StatefulWidget { class _HomeViewState extends State { - List allSpots = [FlSpot(0, 30)]; + List bpmSecondes = [FlSpot(0, 30)]; + List bpmSecondes2 = []; + List vitesseSecondes = [FlSpot(0, 30)]; + List altitudeSecondes = [FlSpot(0, 30)]; + TextEditingController bpmController = TextEditingController(); + + void normaliserDeuxiemeElement(List liste) { + // Trouver le plus grand élément dans la liste + double maxElement = 0.0; + for (var spot in liste) { + if (spot.y > maxElement) { + maxElement = spot.y; + } + } + + // Calculer le facteur de normalisation + double normalisationFactor = maxElement != 0.0 ? 100 / maxElement : 1.0; + // Mettre à jour tous les éléments de la liste + for (int i = 0; i < liste.length; i++) { + liste[i] = FlSpot(liste[i].x, liste[i].y * normalisationFactor); + } + } List lastWorkoutArr = [ { "name": "Full Body Workout", @@ -74,7 +95,14 @@ class _HomeViewState extends State { if (Provider.of(context, listen: true).listActivity.isNotEmpty) { print("rempli"); - allSpots = m.getHeartRateWithTime(Provider.of(context).listActivity[0]); + bpmSecondes = m.getHeartRateWithTime(Provider.of(context).listActivity[0]); + vitesseSecondes = m.getSpeedWithTime(Provider.of(context).listActivity[0]); + altitudeSecondes = m.getAltitudeWithTime(Provider.of(context).listActivity[0]); + normaliserDeuxiemeElement(vitesseSecondes); + normaliserDeuxiemeElement(altitudeSecondes); + bpmSecondes2 = List.from(bpmSecondes) ; + normaliserDeuxiemeElement(bpmSecondes2); + } else { print("vide"); } @@ -83,7 +111,7 @@ class _HomeViewState extends State { final lineBarsData = [ LineChartBarData( - spots: allSpots, + spots: bpmSecondes, isCurved: false, barWidth: 2, belowBarData: BarAreaData( @@ -732,41 +760,12 @@ class _HomeViewState extends State { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - "graph 5", + "Rythme cardique et vitesse", style: TextStyle( color: TColor.black, fontSize: 16, fontWeight: FontWeight.w700), ), - Container( - height: 30, - padding: const EdgeInsets.symmetric(horizontal: 8), - decoration: BoxDecoration( - gradient: LinearGradient(colors: TColor.primaryG), - borderRadius: BorderRadius.circular(15), - ), - child: DropdownButtonHideUnderline( - child: DropdownButton( - items: ["Semaine", "Mois"] - .map((name) => DropdownMenuItem( - value: name, - child: Text( - name, - style: TextStyle( - color: TColor.gray, fontSize: 14), - ), - )) - .toList(), - onChanged: (value) {}, - icon: Icon(Icons.expand_more, color: TColor.white), - hint: Text( - "Semaine", - textAlign: TextAlign.center, - style: - TextStyle(color: TColor.white, fontSize: 12), - ), - ), - )), ], ), SizedBox( @@ -841,7 +840,7 @@ class _HomeViewState extends State { getTooltipItems: (List lineBarsSpot) { return lineBarsSpot.map((lineBarSpot) { return LineTooltipItem( - "il y a ${lineBarSpot.x.toInt()} minutes", + "Seconde ${lineBarSpot.x.toInt()/10} ", const TextStyle( color: Colors.white, fontSize: 10, @@ -853,15 +852,13 @@ class _HomeViewState extends State { ), ), lineBarsData: lineBarsData1, - minY: -0.5, + minY: 0, maxY: 110, titlesData: FlTitlesData( show: true, leftTitles: AxisTitles(), topTitles: AxisTitles(), - bottomTitles: AxisTitles( - sideTitles: bottomTitles, - ), + bottomTitles: AxisTitles(), rightTitles: AxisTitles( sideTitles: rightTitles, )), @@ -960,15 +957,7 @@ class _HomeViewState extends State { isStrokeCapRound: true, dotData: FlDotData(show: false), belowBarData: BarAreaData(show: false), - spots: const [ - FlSpot(1, 35), - FlSpot(2, 70), - FlSpot(3, 40), - FlSpot(4, 80), - FlSpot(5, 25), - FlSpot(6, 70), - FlSpot(7, 35), - ], + spots: vitesseSecondes, ); LineChartBarData get lineChartBarData1_2 => LineChartBarData( @@ -983,15 +972,8 @@ class _HomeViewState extends State { belowBarData: BarAreaData( show: false, ), - spots: const [ - FlSpot(1, 80), - FlSpot(2, 50), - FlSpot(3, 90), - FlSpot(4, 40), - FlSpot(5, 80), - FlSpot(6, 35), - FlSpot(7, 60), - ], + spots: bpmSecondes2 + , ); SideTitles get rightTitles => SideTitles( @@ -1036,8 +1018,8 @@ class _HomeViewState extends State { SideTitles get bottomTitles => SideTitles( showTitles: true, - reservedSize: 32, - interval: 1, + reservedSize: 50, + interval:1, getTitlesWidget: bottomTitleWidgets, ); From e8ed9888d8613f1818a5a1a35a890829f9399396 Mon Sep 17 00:00:00 2001 From: otbenjello Date: Mon, 13 Nov 2023 09:20:00 +0100 Subject: [PATCH 06/11] reglages merge --- lib/Modele/user.dart | 28 ++++++++++------------------ lib/View/home/home_view.dart | 7 +++---- lib/View/page_test.dart | 5 ++++- 3 files changed, 17 insertions(+), 23 deletions(-) diff --git a/lib/Modele/user.dart b/lib/Modele/user.dart index 4deb551..f54c799 100644 --- a/lib/Modele/user.dart +++ b/lib/Modele/user.dart @@ -1,27 +1,19 @@ import 'package:flutter/material.dart'; import 'package:smartfit_app_mobile/Modele/activity.dart'; -class User extends ChangeNotifier { - // A modifier - late String _username; - late String _email; - late String _passwordHash; - late List _listActivity; - String get username => _username; - String get email => _email; - String get passwordHash => _passwordHash; - List get listActivity => _listActivity; +import 'package:flutter/material.dart'; +import 'package:smartfit_app_mobile/Modele/activity.dart'; + +class User extends ChangeNotifier { + String? username; + String? email; + String? token; + List listActivity = []; - User(String username, String email, String passwordHash) { - _username = username; - _email = email; - _passwordHash = passwordHash; - _listActivity = List.empty(growable: true); - } void addActivity(ActivityOfUser activity) { - listActivity.add(activity); + listActivity.add(activity); listActivity.add(activity); notifyListeners(); - } + } } diff --git a/lib/View/home/home_view.dart b/lib/View/home/home_view.dart index aca893c..458cd2c 100644 --- a/lib/View/home/home_view.dart +++ b/lib/View/home/home_view.dart @@ -85,7 +85,6 @@ class _HomeViewState extends State { Widget build(BuildContext context) { print("test1"); - ManagerFile m = ManagerFile(); print("test2"); var media = MediaQuery.of(context).size; @@ -95,9 +94,9 @@ class _HomeViewState extends State { if (Provider.of(context, listen: true).listActivity.isNotEmpty) { print("rempli"); - bpmSecondes = m.getHeartRateWithTime(Provider.of(context).listActivity[0]); - vitesseSecondes = m.getSpeedWithTime(Provider.of(context).listActivity[0]); - altitudeSecondes = m.getAltitudeWithTime(Provider.of(context).listActivity[0]); + bpmSecondes = Provider.of(context).listActivity[0].getHeartRateWithTime(); + vitesseSecondes = Provider.of(context).listActivity[0].getSpeedWithTime(); + altitudeSecondes = Provider.of(context).listActivity[0].getAltitudeWithTime(); normaliserDeuxiemeElement(vitesseSecondes); normaliserDeuxiemeElement(altitudeSecondes); bpmSecondes2 = List.from(bpmSecondes) ; diff --git a/lib/View/page_test.dart b/lib/View/page_test.dart index b9471b2..46a695e 100644 --- a/lib/View/page_test.dart +++ b/lib/View/page_test.dart @@ -76,8 +76,9 @@ class _TestPage extends State { print("test11"); print(result); print("test22"); - print(x.getHeartRateWithTime(ActivityOfUser(result))); + print(ActivityOfUser(result).getHeartRateWithTime()); print("test33"); + Provider.of(context, listen: false).addActivity(ActivityOfUser(result)); //print(x.getDistanceWithTime(ActivityOfUser(result))); //print(x.getDistance(ActivityOfUser(result))); //print(x.getAltitudeWithTime(ActivityOfUser(result))); @@ -209,6 +210,8 @@ class _TestPage extends State { onPressed: createUser, child: const Text("Create User")), ElevatedButton( onPressed: deleteUser, child: const Text("Delete User")), + ElevatedButton( + onPressed: readFile, child: const Text("ReadFile")), ElevatedButton(onPressed: getFiles, child: const Text("getFiles")), ElevatedButton( onPressed: modifAttribut, child: const Text("modif attribut")), From ffeda92d56b4173d3ed7d4a49564674649471abd Mon Sep 17 00:00:00 2001 From: otbenjello Date: Mon, 13 Nov 2023 10:28:09 +0100 Subject: [PATCH 07/11] fonction + graphe calories --- lib/Modele/activity.dart | 20 ++++++++++++++++++++ lib/Modele/user.dart | 2 +- lib/View/home/home_view.dart | 9 ++++++--- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/lib/Modele/activity.dart b/lib/Modele/activity.dart index 0b55431..a741ea1 100644 --- a/lib/Modele/activity.dart +++ b/lib/Modele/activity.dart @@ -53,6 +53,26 @@ class ActivityOfUser { } return result; } + List getCalories() { + List result = List.empty(growable: true); + int firtTimeStamp = 0; + print("enzo"); + print(_contentActivity.length); + for (List ligne in _contentActivity) { + + if (ligne.length >= 39 && ligne[0] == "Data" && ligne[39] == "total_calories") { + print("enzo"); + print(ligne[39]); + if (firtTimeStamp == 0) { + firtTimeStamp = ligne[4]; + } + //result.add([(ligne[4] - firtTimeStamp) ~/ 100, ligne[7].toInt()]); + result + .add(FlSpot((ligne[4] - firtTimeStamp) / 100, ligne[40].toDouble())); + } + } + return result; + } List getAltitudeWithTime() { List result = List.empty(growable: true); diff --git a/lib/Modele/user.dart b/lib/Modele/user.dart index f54c799..0f56207 100644 --- a/lib/Modele/user.dart +++ b/lib/Modele/user.dart @@ -13,7 +13,7 @@ class User extends ChangeNotifier { void addActivity(ActivityOfUser activity) { - listActivity.add(activity); listActivity.add(activity); + listActivity.add(activity); notifyListeners(); } } diff --git a/lib/View/home/home_view.dart b/lib/View/home/home_view.dart index 458cd2c..44bd240 100644 --- a/lib/View/home/home_view.dart +++ b/lib/View/home/home_view.dart @@ -26,6 +26,7 @@ class HomeView extends StatefulWidget { class _HomeViewState extends State { List bpmSecondes = [FlSpot(0, 30)]; List bpmSecondes2 = []; + double calories = 0.0; List vitesseSecondes = [FlSpot(0, 30)]; List altitudeSecondes = [FlSpot(0, 30)]; @@ -97,6 +98,8 @@ class _HomeViewState extends State { bpmSecondes = Provider.of(context).listActivity[0].getHeartRateWithTime(); vitesseSecondes = Provider.of(context).listActivity[0].getSpeedWithTime(); altitudeSecondes = Provider.of(context).listActivity[0].getAltitudeWithTime(); + calories = Provider.of(context).listActivity[0].getCalories()[0].y; + normaliserDeuxiemeElement(vitesseSecondes); normaliserDeuxiemeElement(altitudeSecondes); bpmSecondes2 = List.from(bpmSecondes) ; @@ -698,7 +701,7 @@ class _HomeViewState extends State { 0, 0, bounds.width, bounds.height)); }, child: Text( - "760 kCal", + '${calories.toString()} kCal', style: TextStyle( color: TColor.white.withOpacity(0.7), fontWeight: FontWeight.w700, @@ -726,7 +729,7 @@ class _HomeViewState extends State { ), child: FittedBox( child: Text( - "230kCal\nrestantes", + '${200-calories.toInt()} kCal\n restantes', textAlign: TextAlign.center, style: TextStyle( color: TColor.white, @@ -739,7 +742,7 @@ class _HomeViewState extends State { backStrokeWidth: 10, progressColors: TColor.primaryG, backColor: Colors.grey.shade100, - valueNotifier: ValueNotifier(50), + valueNotifier: ValueNotifier(calories/200*100), startAngle: -180, ), ], From a949111d7c52ccda56cd93082b60dc8964744342 Mon Sep 17 00:00:00 2001 From: otbenjello Date: Mon, 13 Nov 2023 15:31:40 +0100 Subject: [PATCH 08/11] =?UTF-8?q?list=20activit=C3=A9=20marche=20+=20desig?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/img/corbeille.png | Bin 0 -> 15741 bytes assets/img/next_icon.png | Bin 0 -> 2791 bytes lib/Modele/activity.dart | 15 +- lib/Modele/user.dart | 11 ++ lib/View/activity/list_activity.dart | 253 +++++++++++++++++++++++++++ lib/View/login/login_view.dart | 3 +- lib/View/main_tab/main_tab_view.dart | 3 +- lib/View/page_test.dart | 4 +- lib/common_widget/workout_row.dart | 88 ++++++++++ lib/main.dart | 1 + 10 files changed, 371 insertions(+), 7 deletions(-) create mode 100644 assets/img/corbeille.png create mode 100644 assets/img/next_icon.png create mode 100644 lib/View/activity/list_activity.dart create mode 100644 lib/common_widget/workout_row.dart diff --git a/assets/img/corbeille.png b/assets/img/corbeille.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c0d1869234a75b2a28f09db2f9bad3ef5e75cc GIT binary patch literal 15741 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 literal 0 HcmV?d00001 diff --git a/lib/Modele/activity.dart b/lib/Modele/activity.dart index a741ea1..1f14c19 100644 --- a/lib/Modele/activity.dart +++ b/lib/Modele/activity.dart @@ -1,13 +1,15 @@ import 'package:fl_chart/fl_chart.dart'; class ActivityOfUser { - final String _type = "Default"; - + late String _nomActivite; + late String _imageName; late List _contentActivity; List get contentActivity => _contentActivity; - ActivityOfUser(List listeDynamic) { + ActivityOfUser(String nom, List listeDynamic) { + _nomActivite = nom; + _imageName = "assets/img/workout1.svg"; _contentActivity = listeDynamic; } @@ -127,4 +129,11 @@ class ActivityOfUser { } return result; } + + Map toMap() { + return { + 'nomActivite': _nomActivite, + 'image': _imageName, + }; + } } diff --git a/lib/Modele/user.dart b/lib/Modele/user.dart index 0f56207..65163ff 100644 --- a/lib/Modele/user.dart +++ b/lib/Modele/user.dart @@ -16,4 +16,15 @@ class User extends ChangeNotifier { listActivity.add(activity); notifyListeners(); } + + void removeActivity(ActivityOfUser activity) { + listActivity.remove(activity); + notifyListeners(); + } + + // Method to insert an activity at a specific position + void insertActivity(int index, ActivityOfUser activity) { + listActivity.insert(index, activity); + notifyListeners(); + } } diff --git a/lib/View/activity/list_activity.dart b/lib/View/activity/list_activity.dart new file mode 100644 index 0000000..935e453 --- /dev/null +++ b/lib/View/activity/list_activity.dart @@ -0,0 +1,253 @@ +import 'dart:convert'; +import 'dart:io'; + +import 'package:crypto/crypto.dart'; +import 'package:dotted_dashed_line/dotted_dashed_line.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:provider/provider.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/activity.dart'; +import 'package:smartfit_app_mobile/Modele/manager_file.dart'; +import 'package:smartfit_app_mobile/Modele/user.dart'; +import 'package:smartfit_app_mobile/View/home/home_view.dart'; +import 'package:smartfit_app_mobile/View/main_tab/main_tab_view.dart'; +import 'package:smartfit_app_mobile/common_widget/round_button.dart'; +import 'package:smartfit_app_mobile/common_widget/workout_row.dart'; +import 'package:fl_chart/fl_chart.dart'; +import 'package:flutter/material.dart'; +import 'package:simple_animation_progress_bar/simple_animation_progress_bar.dart'; +import 'package:simple_circular_progress_bar/simple_circular_progress_bar.dart'; +import 'package:tuple/tuple.dart'; +import '../../common/colo_extension.dart'; + +class ListActivity extends StatefulWidget { + const ListActivity({super.key}); + + @override + State createState() => _ListActivityState(); +} + +class _ListActivityState extends State { + FilePickerResult? result; + IDataStrategy strategy = RequestApi(); + + //late File x = File(file.path); + Future readFile(String nom) async { + ManagerFile x = ManagerFile(); + PlatformFile t = result!.files.single; + String? y = t.path; + if (t.path == null) { + print("t"); + } else { + List result = await x.readFitFile(y!); + print("test11"); + print(result); + print("test22"); + print(ActivityOfUser(nom, result).getHeartRateWithTime()); + print("test33"); + Provider.of(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))); + } + } + + Future createUser() async { + String mds = "1234"; + var byte = utf8.encode(mds); + var digest = sha256.convert(byte); + print(digest.toString()); + print("Appel"); + Tuple2 res = + await strategy.postUser("toto@gmail.com", digest.toString(), "toto"); + print(res.item1); + print(res.item2); + } + + Future login() async { + String mds = "1234"; + var byte = utf8.encode(mds); + var digest = sha256.convert(byte); + print(digest.toString()); + print("Appel"); + Tuple2 res = + await strategy.connexion("toto@gmail.com", digest.toString()); + print(res.item1); + print(res.item2); + } + + Future deleteUser() async { + String token = + "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1dWlkIjoiYjA3OThmMjAtN2ZiMy0xMWVlLWJhZmQtMDI0MjBhNWEwMDFmIiwiZXhwIjoxNzA0ODgyNDI3fQ.2_bnvEC7_pwchielF3Kpu9fFtXDv_KabdOU8T07UnWI"; + print("Appel"); + Tuple2 res = await strategy.deleteUser(token); + print(res.item1); + print(res.item2); + } + + Future getFiles() async { + String token = + "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1dWlkIjoiOGUyYWVmMTItN2ZiNC0xMWVlLWJhZmQtMDI0MjBhNWEwMDFmIiwiZXhwIjoxNzA0ODgyNzk3fQ.b_zsOHj2C-Y28CrcozbSjEz8BUWL8kgjjx5CDhES8PI"; + print("Appel"); + Tuple2 res = await strategy.getFiles(token); + print(res.item1); + print(res.item2); + } + + Future modifAttribut() async { + String nameAtt = "username"; + String newValue = "toto2"; + String token = + "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1dWlkIjoiOGUyYWVmMTItN2ZiNC0xMWVlLWJhZmQtMDI0MjBhNWEwMDFmIiwiZXhwIjoxNzA0ODgzMDM4fQ.umN7LmUDbKUOeIToLcsOUIioQ7u4wsReHggRDB68VPQ"; + print("Appel"); + Tuple2 res = await strategy.modifAttribut(token, nameAtt, newValue); + print(res.item1); + print(res.item2); + } + + Future uploadFile() async { + PlatformFile t = result!.files.single; + String token = + "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1dWlkIjoiOGUyYWVmMTItN2ZiNC0xMWVlLWJhZmQtMDI0MjBhNWEwMDFmIiwiZXhwIjoxNzA0ODgzNjM5fQ.0TmfJ9eYnszw4_RkNwPkMzkJxvsIFs5BI9uhQ7qYb0g"; + String? lol = t.path!; + print("Appel"); + Tuple2 res = await strategy.uploadFile(token, File(lol)); + print(res.item1); + print(res.item2); + } + + Future getOneFile() async { + String ui = "fc6e234c-7fc6-11ee-bafd-02420a5a001f"; + String token = + "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1dWlkIjoiOGUyYWVmMTItN2ZiNC0xMWVlLWJhZmQtMDI0MjBhNWEwMDFmIiwiZXhwIjoxNzA0ODgzOTE3fQ.TUdrGEo7A0auQlUfO5RQm874QWuGXFBSKbJ8qTGPF2M"; + print("Appel"); + Tuple2 res = await strategy.getFile(token, ui); + print(res.item1); + print(res.item2); + + ManagerFile x = ManagerFile(); + File file = File("${await x.localPath}/Walking_2023-11-08T10_57_28.fit"); + await file.create(); + await file.writeAsBytes(res.item2); + print(await x.localPath); + print("Save"); + + print(await x + .readFitFile("${await x.localPath}/Walking_2023-11-08T10_57_28.fit")); + } + + Future getInfoUser() async { + String token = + "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1dWlkIjoiOGUyYWVmMTItN2ZiNC0xMWVlLWJhZmQtMDI0MjBhNWEwMDFmIiwiZXhwIjoxNzA0ODgzOTE3fQ.TUdrGEo7A0auQlUfO5RQm874QWuGXFBSKbJ8qTGPF2M"; + Tuple2 res = await strategy.getInfoUser(token); + print(res.item1); + print(res.item2); + } + + List lastWorkoutArr = []; + + + @override + Widget build(BuildContext context) { + var media = MediaQuery.of(context).size; + + + + return Scaffold( + backgroundColor: TColor.white, + body: SingleChildScrollView( + child: SafeArea( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 15), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + + Text( + "List Activités", + style: TextStyle( + color: TColor.black, + fontSize: 16, + fontWeight: FontWeight.w700), + ), + 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); + + } + } + }, + child: Text( + "Ajouter", + style: TextStyle( + color: TColor.gray, + fontSize: 14, + fontWeight: FontWeight.w700), + ), + ) + ], + ), + Provider.of(context, listen: true).listActivity.isEmpty + ? Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox(height: 20), + Text( + "Vous n'avez pas d'activités pour le moment, veuillez en ajouter.", + style: TextStyle( + color: TColor.gray, + fontSize: 11, + fontStyle: FontStyle.italic, + fontWeight: FontWeight.w400, + ), + )]) + : + 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] as ActivityOfUser; + var activityMap = activityObj.toMap(); + return InkWell( + onTap: () { + Provider.of(context, listen: false).removeActivity(activityObj); + Provider.of(context, listen: false).insertActivity(0, activityObj); + }, + child: WorkoutRow( + wObj: activityMap, + onDelete: () { + Provider.of(context, listen: false).removeActivity(activityObj); + }, + onClick: () { + Provider.of(context, listen: false).removeActivity(activityObj); + Provider.of(context, listen: false).insertActivity(0, activityObj); + }, + )); + }), + SizedBox( + height: media.width * 0.1, + ), + ], + ), + ), + ), + ), +); + } + + +} \ No newline at end of file diff --git a/lib/View/login/login_view.dart b/lib/View/login/login_view.dart index 335df80..0f3b8b9 100644 --- a/lib/View/login/login_view.dart +++ b/lib/View/login/login_view.dart @@ -6,6 +6,7 @@ import 'package:provider/provider.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/View/activity/list_activity.dart'; import 'package:smartfit_app_mobile/View/page_test.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart'; import 'package:smartfit_app_mobile/common_widget/round_button.dart'; @@ -137,7 +138,7 @@ class _LoginViewState extends State { Navigator.push( context, MaterialPageRoute( - builder: (context) => const TestPage())); + builder: (context) => const ListActivity())); } } else { print("Connection refuser"); diff --git a/lib/View/main_tab/main_tab_view.dart b/lib/View/main_tab/main_tab_view.dart index cd1788f..d45f62b 100644 --- a/lib/View/main_tab/main_tab_view.dart +++ b/lib/View/main_tab/main_tab_view.dart @@ -1,3 +1,4 @@ +import 'package:smartfit_app_mobile/View/activity/list_activity.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart'; import 'package:smartfit_app_mobile/common_widget/tab_button.dart'; import 'package:smartfit_app_mobile/view/activity/activity.dart'; @@ -30,7 +31,7 @@ class _MainTabViewState extends State { child: InkWell( onTap: () { selectTab = 4; - currentTab = const TestPage(); + currentTab = const ListActivity(); if (mounted) { setState(() {}); } diff --git a/lib/View/page_test.dart b/lib/View/page_test.dart index 46a695e..ff46054 100644 --- a/lib/View/page_test.dart +++ b/lib/View/page_test.dart @@ -1,4 +1,4 @@ -import 'dart:convert'; +/*import 'dart:convert'; import 'package:crypto/crypto.dart'; import 'package:flutter/material.dart'; @@ -387,4 +387,4 @@ class _MyHomePageState extends State { ); } } -*/ \ No newline at end of file +*/*/ \ No newline at end of file diff --git a/lib/common_widget/workout_row.dart b/lib/common_widget/workout_row.dart new file mode 100644 index 0000000..a2e3250 --- /dev/null +++ b/lib/common_widget/workout_row.dart @@ -0,0 +1,88 @@ +import 'package:flutter_svg/svg.dart'; +import 'package:provider/provider.dart'; +import 'package:smartfit_app_mobile/Modele/activity.dart'; +import 'package:smartfit_app_mobile/Modele/user.dart'; +import 'package:smartfit_app_mobile/View/activity/activity.dart'; +import 'package:smartfit_app_mobile/common/colo_extension.dart'; +import 'package:flutter/material.dart'; +import 'package:simple_animation_progress_bar/simple_animation_progress_bar.dart'; + +class WorkoutRow extends StatelessWidget { + final Map wObj; + final VoidCallback onDelete; + final VoidCallback onClick; + const WorkoutRow({Key? key, required this.wObj, required this.onDelete, required this.onClick}) : super(key: key); + + @override + Widget build(BuildContext context) { + var media = MediaQuery.of(context).size; + return Container( + margin: const EdgeInsets.symmetric(vertical: 8, horizontal: 2), + padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 15), + decoration: BoxDecoration( + color: TColor.white, + borderRadius: BorderRadius.circular(20), + boxShadow: const [BoxShadow(color: Colors.black12, blurRadius: 2)], + ), + child: Row( + children: [ + ClipRRect( + borderRadius: BorderRadius.circular(30), + child: SvgPicture.asset( + wObj["image"].toString(), + width: 60, + height: 60, + fit: BoxFit.cover, + ), + ), + const SizedBox(width: 15), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + wObj["nomActivite"].toString(), + style: TextStyle( + color: TColor.black, + fontSize: 12, + ), + ), + ], + ), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + IconButton( + onPressed: onClick, + icon: Image.asset( + "assets/img/next_icon.png", + width: 30, + height: 30, + fit: BoxFit.contain, + ), + ), + IconButton( + // ici pour remove l'activité + onPressed: onDelete, + icon: Image.asset( + "assets/img/corbeille.png", + width: 30, + height: 30, + fit: BoxFit.contain, + ), + ), + ], + ), + ], + ), + ), + ], + ), + ); + } +} diff --git a/lib/main.dart b/lib/main.dart index ff58d38..6788648 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:smartfit_app_mobile/Modele/user.dart'; +import 'package:smartfit_app_mobile/View/activity/list_activity.dart'; import 'package:smartfit_app_mobile/View/login/login_view.dart'; import 'package:smartfit_app_mobile/View/login/signup_view.dart'; import 'package:smartfit_app_mobile/View/on_boarding/started_view.dart'; From 2353c305c2e7be80ce475a3c49835bf29fd4902f Mon Sep 17 00:00:00 2001 From: otbenjello Date: Mon, 13 Nov 2023 15:53:42 +0100 Subject: [PATCH 09/11] mastertest --- lib/main.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/main.dart b/lib/main.dart index e4ed8ef..3edcf10 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -5,6 +5,7 @@ import 'package:smartfit_app_mobile/View/activity/list_activity.dart'; import 'package:smartfit_app_mobile/View/login/login_view.dart'; import 'package:smartfit_app_mobile/View/login/signup_view.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart'; +import 'package:smartfit_app_mobile/view/main_tab/main_tab_view.dart'; void main() { runApp(ChangeNotifierProvider( @@ -38,7 +39,7 @@ class MyApp extends StatelessWidget { primaryColor: TColor.primaryColor1, fontFamily: "Poppins"), //home: const StartedView(), - home: const SignUpView(), + home: const MainTabView(), ); } } From b02dce5886760beb7036287286760494fa2a3958 Mon Sep 17 00:00:00 2001 From: otbenjello Date: Mon, 13 Nov 2023 15:54:11 +0100 Subject: [PATCH 10/11] mastertest --- lib/main.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 3edcf10..e4ed8ef 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -5,7 +5,6 @@ import 'package:smartfit_app_mobile/View/activity/list_activity.dart'; import 'package:smartfit_app_mobile/View/login/login_view.dart'; import 'package:smartfit_app_mobile/View/login/signup_view.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart'; -import 'package:smartfit_app_mobile/view/main_tab/main_tab_view.dart'; void main() { runApp(ChangeNotifierProvider( @@ -39,7 +38,7 @@ class MyApp extends StatelessWidget { primaryColor: TColor.primaryColor1, fontFamily: "Poppins"), //home: const StartedView(), - home: const MainTabView(), + home: const SignUpView(), ); } } From ddadf77c660b257533124cde8e131454058f4ef9 Mon Sep 17 00:00:00 2001 From: RemRem Date: Wed, 15 Nov 2023 11:15:56 +0100 Subject: [PATCH 11/11] rename folders to lowercase --- lib/{Modele => modele}/activity.dart | 0 lib/{Modele/Api => modele/api}/i_data_strategy.dart | 0 lib/{Modele/Api => modele/api}/request_api.dart | 0 lib/{Modele => modele}/manager_file.dart | 0 lib/{Modele => modele}/user.dart | 0 lib/{View => view}/activity/activity.dart | 0 lib/{View => view}/home/activity_tracker.dart | 0 lib/{View => view}/home/blank_view.dart | 0 lib/{View => view}/home/home_view.dart | 0 lib/{View => view}/home/notification_view.dart | 0 lib/{View => view}/login/login_view.dart | 0 lib/{View => view}/login/signup_view.dart | 0 lib/{View => view}/main_tab/main_tab_view.dart | 0 lib/{View => view}/main_tab/select_view.dart | 0 lib/{View => view}/map/my_map.dart | 0 lib/{View => view}/map/test.dart | 0 lib/{View => view}/on_boarding/on_boarding_view.dart | 0 lib/{View => view}/on_boarding/started_view.dart | 0 lib/{View => view}/page_test.dart | 0 lib/{View => view}/profile/profile_view.dart | 0 20 files changed, 0 insertions(+), 0 deletions(-) rename lib/{Modele => modele}/activity.dart (100%) rename lib/{Modele/Api => modele/api}/i_data_strategy.dart (100%) rename lib/{Modele/Api => modele/api}/request_api.dart (100%) rename lib/{Modele => modele}/manager_file.dart (100%) rename lib/{Modele => modele}/user.dart (100%) rename lib/{View => view}/activity/activity.dart (100%) rename lib/{View => view}/home/activity_tracker.dart (100%) rename lib/{View => view}/home/blank_view.dart (100%) rename lib/{View => view}/home/home_view.dart (100%) rename lib/{View => view}/home/notification_view.dart (100%) rename lib/{View => view}/login/login_view.dart (100%) rename lib/{View => view}/login/signup_view.dart (100%) rename lib/{View => view}/main_tab/main_tab_view.dart (100%) rename lib/{View => view}/main_tab/select_view.dart (100%) rename lib/{View => view}/map/my_map.dart (100%) rename lib/{View => view}/map/test.dart (100%) rename lib/{View => view}/on_boarding/on_boarding_view.dart (100%) rename lib/{View => view}/on_boarding/started_view.dart (100%) rename lib/{View => view}/page_test.dart (100%) rename lib/{View => view}/profile/profile_view.dart (100%) diff --git a/lib/Modele/activity.dart b/lib/modele/activity.dart similarity index 100% rename from lib/Modele/activity.dart rename to lib/modele/activity.dart diff --git a/lib/Modele/Api/i_data_strategy.dart b/lib/modele/api/i_data_strategy.dart similarity index 100% rename from lib/Modele/Api/i_data_strategy.dart rename to lib/modele/api/i_data_strategy.dart diff --git a/lib/Modele/Api/request_api.dart b/lib/modele/api/request_api.dart similarity index 100% rename from lib/Modele/Api/request_api.dart rename to lib/modele/api/request_api.dart diff --git a/lib/Modele/manager_file.dart b/lib/modele/manager_file.dart similarity index 100% rename from lib/Modele/manager_file.dart rename to lib/modele/manager_file.dart diff --git a/lib/Modele/user.dart b/lib/modele/user.dart similarity index 100% rename from lib/Modele/user.dart rename to lib/modele/user.dart diff --git a/lib/View/activity/activity.dart b/lib/view/activity/activity.dart similarity index 100% rename from lib/View/activity/activity.dart rename to lib/view/activity/activity.dart diff --git a/lib/View/home/activity_tracker.dart b/lib/view/home/activity_tracker.dart similarity index 100% rename from lib/View/home/activity_tracker.dart rename to lib/view/home/activity_tracker.dart diff --git a/lib/View/home/blank_view.dart b/lib/view/home/blank_view.dart similarity index 100% rename from lib/View/home/blank_view.dart rename to lib/view/home/blank_view.dart diff --git a/lib/View/home/home_view.dart b/lib/view/home/home_view.dart similarity index 100% rename from lib/View/home/home_view.dart rename to lib/view/home/home_view.dart diff --git a/lib/View/home/notification_view.dart b/lib/view/home/notification_view.dart similarity index 100% rename from lib/View/home/notification_view.dart rename to lib/view/home/notification_view.dart diff --git a/lib/View/login/login_view.dart b/lib/view/login/login_view.dart similarity index 100% rename from lib/View/login/login_view.dart rename to lib/view/login/login_view.dart diff --git a/lib/View/login/signup_view.dart b/lib/view/login/signup_view.dart similarity index 100% rename from lib/View/login/signup_view.dart rename to lib/view/login/signup_view.dart diff --git a/lib/View/main_tab/main_tab_view.dart b/lib/view/main_tab/main_tab_view.dart similarity index 100% rename from lib/View/main_tab/main_tab_view.dart rename to lib/view/main_tab/main_tab_view.dart diff --git a/lib/View/main_tab/select_view.dart b/lib/view/main_tab/select_view.dart similarity index 100% rename from lib/View/main_tab/select_view.dart rename to lib/view/main_tab/select_view.dart diff --git a/lib/View/map/my_map.dart b/lib/view/map/my_map.dart similarity index 100% rename from lib/View/map/my_map.dart rename to lib/view/map/my_map.dart diff --git a/lib/View/map/test.dart b/lib/view/map/test.dart similarity index 100% rename from lib/View/map/test.dart rename to lib/view/map/test.dart diff --git a/lib/View/on_boarding/on_boarding_view.dart b/lib/view/on_boarding/on_boarding_view.dart similarity index 100% rename from lib/View/on_boarding/on_boarding_view.dart rename to lib/view/on_boarding/on_boarding_view.dart diff --git a/lib/View/on_boarding/started_view.dart b/lib/view/on_boarding/started_view.dart similarity index 100% rename from lib/View/on_boarding/started_view.dart rename to lib/view/on_boarding/started_view.dart diff --git a/lib/View/page_test.dart b/lib/view/page_test.dart similarity index 100% rename from lib/View/page_test.dart rename to lib/view/page_test.dart diff --git a/lib/View/profile/profile_view.dart b/lib/view/profile/profile_view.dart similarity index 100% rename from lib/View/profile/profile_view.dart rename to lib/view/profile/profile_view.dart