From d8f94a41c91799cd3ee605fec6fe6b3a20987224 Mon Sep 17 00:00:00 2001 From: Enzo Date: Thu, 16 Nov 2023 16:24:01 +0100 Subject: [PATCH] Gros nettoyage --- .../{ => button}/round_button.dart | 2 +- .../{ => button}/tab_button.dart | 0 .../{ => container}/container_stats.dart | 0 .../ligne_container_stats.dart | 2 +- .../{ => container}/workout_row.dart | 0 .../graph/bpm_and_speed_by_time.dart | 223 +++++++ lib/common_widget/graph/bpm_by_time.dart | 213 +++++++ lib/common_widget/{ => graph}/graph.dart | 0 lib/common_widget/{ => not_use}/dates.dart | 6 +- lib/common_widget/{ => not_use}/helpers.dart | 0 .../{ => not_use}/latest_activity_row.dart | 0 .../{ => not_use}/notification_row.dart | 0 .../{ => on_boarding}/on_boarding_page.dart | 11 +- lib/common_widget/other/entete_home_view.dart | 47 ++ .../{ => text_field}/round_text_field.dart | 2 +- lib/main.dart | 1 - lib/modele/activity.dart | 2 +- lib/modele/user.dart | 1 - .../utile/home_view/data_home_view.dart | 13 + .../utile/home_view/home_view_util.dart | 37 ++ lib/view/activity/activity.dart | 4 +- .../activity/mobile/mobile_Activity_view.dart | 2 +- .../activity/mobile/mobile_list_activity.dart | 2 +- lib/view/activity/web/web_Activity_view.dart | 2 +- lib/view/activity/web/web_list_activity.dart | 2 +- lib/view/home/mobile/mobile_homeview.dart | 571 +----------------- lib/view/home/notification_view.dart | 59 +- lib/view/home/web/web_homeview.dart | 2 +- lib/view/login/mobile/android_login_view.dart | 4 +- .../login/mobile/android_signup_view.dart | 4 +- lib/view/login/web/web_login_view.dart | 4 +- lib/view/login/web/web_signup_view.dart | 4 +- lib/view/main_tab/main_tab_view.dart | 2 +- lib/view/on_boarding/on_boarding_view.dart | 2 +- lib/view/on_boarding/started_view.dart | 2 +- .../profile/mobile/mobile_profile_view.dart | 2 +- lib/view/profile/web/web_profile_view.dart | 2 +- 37 files changed, 624 insertions(+), 606 deletions(-) rename lib/common_widget/{ => button}/round_button.dart (98%) rename lib/common_widget/{ => button}/tab_button.dart (100%) rename lib/common_widget/{ => container}/container_stats.dart (100%) rename lib/common_widget/{ => container}/ligne_container_stats.dart (90%) rename lib/common_widget/{ => container}/workout_row.dart (100%) create mode 100644 lib/common_widget/graph/bpm_and_speed_by_time.dart create mode 100644 lib/common_widget/graph/bpm_by_time.dart rename lib/common_widget/{ => graph}/graph.dart (100%) rename lib/common_widget/{ => not_use}/dates.dart (94%) rename lib/common_widget/{ => not_use}/helpers.dart (100%) rename lib/common_widget/{ => not_use}/latest_activity_row.dart (100%) rename lib/common_widget/{ => not_use}/notification_row.dart (100%) rename lib/common_widget/{ => on_boarding}/on_boarding_page.dart (91%) create mode 100644 lib/common_widget/other/entete_home_view.dart rename lib/common_widget/{ => text_field}/round_text_field.dart (97%) create mode 100644 lib/modele/utile/home_view/data_home_view.dart create mode 100644 lib/modele/utile/home_view/home_view_util.dart diff --git a/lib/common_widget/round_button.dart b/lib/common_widget/button/round_button.dart similarity index 98% rename from lib/common_widget/round_button.dart rename to lib/common_widget/button/round_button.dart index d243c38..23fc278 100644 --- a/lib/common_widget/round_button.dart +++ b/lib/common_widget/button/round_button.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import '../common/colo_extension.dart'; +import '../../common/colo_extension.dart'; enum RoundButtonType { bgGradient, bgSGradient, textGradient } diff --git a/lib/common_widget/tab_button.dart b/lib/common_widget/button/tab_button.dart similarity index 100% rename from lib/common_widget/tab_button.dart rename to lib/common_widget/button/tab_button.dart diff --git a/lib/common_widget/container_stats.dart b/lib/common_widget/container/container_stats.dart similarity index 100% rename from lib/common_widget/container_stats.dart rename to lib/common_widget/container/container_stats.dart diff --git a/lib/common_widget/ligne_container_stats.dart b/lib/common_widget/container/ligne_container_stats.dart similarity index 90% rename from lib/common_widget/ligne_container_stats.dart rename to lib/common_widget/container/ligne_container_stats.dart index 3530c38..359272d 100644 --- a/lib/common_widget/ligne_container_stats.dart +++ b/lib/common_widget/container/ligne_container_stats.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:smartfit_app_mobile/common_widget/container_stats.dart'; +import 'package:smartfit_app_mobile/common_widget/container/container_stats.dart'; class LigneContainerStats extends StatelessWidget { const LigneContainerStats(this.value1, this.value2, this.value3, diff --git a/lib/common_widget/workout_row.dart b/lib/common_widget/container/workout_row.dart similarity index 100% rename from lib/common_widget/workout_row.dart rename to lib/common_widget/container/workout_row.dart diff --git a/lib/common_widget/graph/bpm_and_speed_by_time.dart b/lib/common_widget/graph/bpm_and_speed_by_time.dart new file mode 100644 index 0000000..0c9dc00 --- /dev/null +++ b/lib/common_widget/graph/bpm_and_speed_by_time.dart @@ -0,0 +1,223 @@ +import 'package:fl_chart/fl_chart.dart'; +import 'package:flutter/material.dart'; +import 'package:smartfit_app_mobile/common/colo_extension.dart'; +import 'package:smartfit_app_mobile/modele/utile/home_view/data_home_view.dart'; + +class GraphBpmAndSpeedByTime extends StatefulWidget { + final Size media; + final DataHomeView data; + + const GraphBpmAndSpeedByTime(this.media, this.data, {Key? key}) + : super(key: key); + + @override + State createState() => _GraphBpmAndSpeedByTime(); +} + +class _GraphBpmAndSpeedByTime extends State { + TextEditingController bpmController = TextEditingController(); + + List showingTooltipOnSpots = [0]; + + SideTitles get rightTitles => SideTitles( + getTitlesWidget: rightTitleWidgets, + showTitles: true, + interval: 20, + reservedSize: 40, + ); + + Widget rightTitleWidgets(double value, TitleMeta meta) { + String text; + switch (value.toInt()) { + case 0: + text = '0%'; + break; + case 20: + text = '20%'; + break; + case 40: + text = '40%'; + break; + case 60: + text = '60%'; + break; + case 80: + text = '80%'; + break; + case 100: + text = '100%'; + break; + default: + return Container(); + } + + return Text(text, + style: TextStyle( + color: TColor.gray, + fontSize: 12, + ), + textAlign: TextAlign.center); + } + + List get lineBarsData1 => [ + lineChartBarData1_1, + lineChartBarData1_2, + ]; + + LineChartBarData get lineChartBarData1_1 => LineChartBarData( + isCurved: true, + gradient: LinearGradient(colors: [ + TColor.primaryColor2.withOpacity(0.5), + TColor.primaryColor1.withOpacity(0.5), + ]), + barWidth: 4, + isStrokeCapRound: true, + dotData: const FlDotData(show: false), + belowBarData: BarAreaData(show: false), + spots: widget.data.vitesseSecondes, + ); + + LineChartBarData get lineChartBarData1_2 => LineChartBarData( + isCurved: true, + gradient: LinearGradient(colors: [ + TColor.secondaryColor2.withOpacity(0.5), + TColor.secondaryColor1.withOpacity(0.5), + ]), + barWidth: 2, + isStrokeCapRound: true, + dotData: const FlDotData(show: false), + belowBarData: BarAreaData( + show: false, + ), + spots: widget.data.bpmSecondes2, + ); + + @override + Widget build(BuildContext context) { + final lineBarsData = [ + LineChartBarData( + spots: widget.data.bpmSecondes, + isCurved: false, + barWidth: 2, + belowBarData: BarAreaData( + show: true, + gradient: LinearGradient(colors: [ + TColor.secondaryColor1.withOpacity(0.4), + TColor.secondaryColor2.withOpacity(0.1), + ], begin: Alignment.topCenter, end: Alignment.bottomCenter), + ), + dotData: const FlDotData(show: false), + gradient: LinearGradient( + colors: TColor.secondaryG, + ), + ), + ]; + final tooltipsOnBar = lineBarsData[0]; + + return Container( + padding: const EdgeInsets.only(left: 15), + height: widget.media.width * 0.5, + width: double.maxFinite, + child: LineChart( + LineChartData( + showingTooltipIndicators: showingTooltipOnSpots.map((index) { + return ShowingTooltipIndicators([ + LineBarSpot( + tooltipsOnBar, + lineBarsData.indexOf(tooltipsOnBar), + tooltipsOnBar.spots[index], + ), + ]); + }).toList(), + lineTouchData: LineTouchData( + enabled: true, + handleBuiltInTouches: false, + touchCallback: (FlTouchEvent event, LineTouchResponse? response) { + if (response == null || response.lineBarSpots == null) { + return; + } + if (event is FlTapUpEvent) { + final spotIndex = response.lineBarSpots!.first.spotIndex; + showingTooltipOnSpots.clear(); + setState(() { + showingTooltipOnSpots.add(spotIndex); + }); + } + }, + mouseCursorResolver: + (FlTouchEvent event, LineTouchResponse? response) { + if (response == null || response.lineBarSpots == null) { + return SystemMouseCursors.basic; + } + return SystemMouseCursors.click; + }, + getTouchedSpotIndicator: + (LineChartBarData barData, List spotIndexes) { + return spotIndexes.map((index) { + return TouchedSpotIndicatorData( + const FlLine( + color: Colors.transparent, + ), + FlDotData( + show: true, + getDotPainter: (spot, percent, barData, index) => + FlDotCirclePainter( + radius: 3, + color: Colors.white, + strokeWidth: 3, + strokeColor: TColor.secondaryColor1, + ), + ), + ); + }).toList(); + }, + touchTooltipData: LineTouchTooltipData( + tooltipBgColor: TColor.secondaryColor1, + tooltipRoundedRadius: 20, + getTooltipItems: (List lineBarsSpot) { + return lineBarsSpot.map((lineBarSpot) { + return LineTooltipItem( + "Seconde ${lineBarSpot.x.toInt() / 10} ", + const TextStyle( + color: Colors.white, + fontSize: 10, + fontWeight: FontWeight.bold, + ), + ); + }).toList(); + }, + ), + ), + lineBarsData: lineBarsData1, + minY: 0, + maxY: 110, + titlesData: FlTitlesData( + show: true, + leftTitles: const AxisTitles(), + topTitles: const AxisTitles(), + bottomTitles: const AxisTitles(), + rightTitles: AxisTitles( + sideTitles: rightTitles, + )), + gridData: FlGridData( + show: true, + drawHorizontalLine: true, + horizontalInterval: 25, + drawVerticalLine: false, + getDrawingHorizontalLine: (value) { + return FlLine( + color: TColor.gray.withOpacity(0.15), + strokeWidth: 2, + ); + }, + ), + borderData: FlBorderData( + show: true, + border: Border.all( + color: Colors.transparent, + ), + ), + ), + )); + } +} diff --git a/lib/common_widget/graph/bpm_by_time.dart b/lib/common_widget/graph/bpm_by_time.dart new file mode 100644 index 0000000..aaa580c --- /dev/null +++ b/lib/common_widget/graph/bpm_by_time.dart @@ -0,0 +1,213 @@ +import 'package:fl_chart/fl_chart.dart'; +import 'package:flutter/material.dart'; +import 'package:smartfit_app_mobile/common/colo_extension.dart'; +import 'package:smartfit_app_mobile/modele/utile/home_view/data_home_view.dart'; + +class GraphBpmByTime extends StatefulWidget { + final Size media; + final DataHomeView data; + + const GraphBpmByTime(this.media, this.data, {Key? key}) : super(key: key); + + @override + State createState() => _GraphBpmByTime(); +} + +class _GraphBpmByTime extends State { + TextEditingController bpmController = TextEditingController(); + + // Il faut chercher à le suprimer + List showingTooltipOnSpots = [0]; + + List get lineBarsData1 => [ + lineChartBarData1_1, + lineChartBarData1_2, + ]; + + LineChartBarData get lineChartBarData1_1 => LineChartBarData( + isCurved: true, + gradient: LinearGradient(colors: [ + TColor.primaryColor2.withOpacity(0.5), + TColor.primaryColor1.withOpacity(0.5), + ]), + barWidth: 4, + isStrokeCapRound: true, + dotData: const FlDotData(show: false), + belowBarData: BarAreaData(show: false), + spots: widget.data.vitesseSecondes, + ); + + LineChartBarData get lineChartBarData1_2 => LineChartBarData( + isCurved: true, + gradient: LinearGradient(colors: [ + TColor.secondaryColor2.withOpacity(0.5), + TColor.secondaryColor1.withOpacity(0.5), + ]), + barWidth: 2, + isStrokeCapRound: true, + dotData: const FlDotData(show: false), + belowBarData: BarAreaData( + show: false, + ), + spots: widget.data.bpmSecondes2, + ); + + @override + Widget build(BuildContext context) { + Size media = MediaQuery.of(context).size; + + final lineBarsData = [ + LineChartBarData( + spots: widget.data.bpmSecondes, + isCurved: false, + barWidth: 2, + belowBarData: BarAreaData( + show: true, + gradient: LinearGradient(colors: [ + TColor.secondaryColor1.withOpacity(0.4), + TColor.secondaryColor2.withOpacity(0.1), + ], begin: Alignment.topCenter, end: Alignment.bottomCenter), + ), + dotData: const FlDotData(show: false), + gradient: LinearGradient( + colors: TColor.secondaryG, + ), + ), + ]; + + final tooltipsOnBar = lineBarsData[0]; + + return ClipRRect( + borderRadius: BorderRadius.circular(25), + child: Container( + height: media.width * 0.4, + width: double.maxFinite, + decoration: BoxDecoration( + color: TColor.primaryColor2.withOpacity(0.3), + borderRadius: BorderRadius.circular(25), + ), + child: Stack( + alignment: Alignment.topLeft, + children: [ + Padding( + padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 20), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Rythme cardiaque", + style: TextStyle( + color: TColor.black, + fontSize: 16, + fontWeight: FontWeight.w700), + ), + TextField( + controller: bpmController, + readOnly: true, + style: TextStyle( + color: TColor.primaryColor1.withOpacity(0.8), + fontWeight: FontWeight.w700, + fontSize: 18), + decoration: const InputDecoration( + border: InputBorder + .none, // Ajoutez cette ligne pour supprimer la bordure + ), + ), + ], + ), + ), + LineChart( + LineChartData( + showingTooltipIndicators: showingTooltipOnSpots.map((index) { + return ShowingTooltipIndicators([ + LineBarSpot( + tooltipsOnBar, + lineBarsData.indexOf(tooltipsOnBar), + tooltipsOnBar.spots[index], + ), + ]); + }).toList(), + lineTouchData: LineTouchData( + enabled: true, + handleBuiltInTouches: false, + touchCallback: + (FlTouchEvent event, LineTouchResponse? response) { + if (response == null || response.lineBarSpots == null) { + return; + } + if (event is FlTapUpEvent) { + final spotIndex = response.lineBarSpots!.first.spotIndex; + showingTooltipOnSpots.clear(); + setState(() { + showingTooltipOnSpots.add(spotIndex); + }); + } + }, + mouseCursorResolver: + (FlTouchEvent event, LineTouchResponse? response) { + if (response == null || response.lineBarSpots == null) { + return SystemMouseCursors.basic; + } + return SystemMouseCursors.click; + }, + getTouchedSpotIndicator: + (LineChartBarData barData, List spotIndexes) { + return spotIndexes.map((index) { + return TouchedSpotIndicatorData( + FlLine( + color: TColor.secondaryColor1, + ), + FlDotData( + show: true, + getDotPainter: (spot, percent, barData, index) => + FlDotCirclePainter( + radius: 3, + color: Colors.white, + strokeWidth: 3, + strokeColor: TColor.secondaryColor1, + ), + ), + ); + }).toList(); + }, + touchTooltipData: LineTouchTooltipData( + tooltipBgColor: TColor.secondaryColor1, + tooltipRoundedRadius: 20, + getTooltipItems: (List lineBarsSpot) { + return lineBarsSpot.map((lineBarSpot) { + bpmController.text = "${lineBarSpot.y} BPM"; + return LineTooltipItem( + "Seconde ${lineBarSpot.x.toInt() / 10}", + const TextStyle( + color: Colors.white, + fontSize: 10, + fontWeight: FontWeight.bold, + ), + ); + }).toList(); + }, + ), + ), + lineBarsData: lineBarsData, + minY: 50, + maxY: 250, + titlesData: const FlTitlesData( + show: false, + ), + gridData: const FlGridData(show: false), + borderData: FlBorderData( + show: true, + border: Border.all( + color: Colors.transparent, + ), + ), + ), + ) + ], + ), + ), + ); + } +} diff --git a/lib/common_widget/graph.dart b/lib/common_widget/graph/graph.dart similarity index 100% rename from lib/common_widget/graph.dart rename to lib/common_widget/graph/graph.dart diff --git a/lib/common_widget/dates.dart b/lib/common_widget/not_use/dates.dart similarity index 94% rename from lib/common_widget/dates.dart rename to lib/common_widget/not_use/dates.dart index 126f864..ecaaa9f 100644 --- a/lib/common_widget/dates.dart +++ b/lib/common_widget/not_use/dates.dart @@ -1,5 +1,5 @@ import 'package:smartfit_app_mobile/common/colo_extension.dart'; -import 'package:smartfit_app_mobile/common_widget/helpers.dart'; +import 'package:smartfit_app_mobile/common_widget/not_use/helpers.dart'; import 'package:flutter/material.dart'; class Dates extends StatelessWidget { @@ -45,7 +45,7 @@ class DateBox extends StatelessWidget { padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 5), decoration: BoxDecoration( gradient: active - ? LinearGradient(colors: [ + ? LinearGradient(colors: [ TColor.primaryColor2, TColor.primaryColor1, ], begin: Alignment.topCenter) @@ -77,4 +77,4 @@ class DateBox extends StatelessWidget { ), ); } -} \ No newline at end of file +} diff --git a/lib/common_widget/helpers.dart b/lib/common_widget/not_use/helpers.dart similarity index 100% rename from lib/common_widget/helpers.dart rename to lib/common_widget/not_use/helpers.dart diff --git a/lib/common_widget/latest_activity_row.dart b/lib/common_widget/not_use/latest_activity_row.dart similarity index 100% rename from lib/common_widget/latest_activity_row.dart rename to lib/common_widget/not_use/latest_activity_row.dart diff --git a/lib/common_widget/notification_row.dart b/lib/common_widget/not_use/notification_row.dart similarity index 100% rename from lib/common_widget/notification_row.dart rename to lib/common_widget/not_use/notification_row.dart diff --git a/lib/common_widget/on_boarding_page.dart b/lib/common_widget/on_boarding/on_boarding_page.dart similarity index 91% rename from lib/common_widget/on_boarding_page.dart rename to lib/common_widget/on_boarding/on_boarding_page.dart index ff21b3e..f08d299 100644 --- a/lib/common_widget/on_boarding_page.dart +++ b/lib/common_widget/on_boarding/on_boarding_page.dart @@ -1,8 +1,7 @@ - import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import '../common/colo_extension.dart'; +import '../../common/colo_extension.dart'; class OnBoardingPage extends StatelessWidget { final Map pObj; @@ -10,10 +9,8 @@ class OnBoardingPage extends StatelessWidget { @override Widget build(BuildContext context) { - var media = MediaQuery.of(context).size; - return - - SizedBox( + var media = MediaQuery.of(context).size; + return SizedBox( width: media.width, height: media.height, child: Column( @@ -51,4 +48,4 @@ class OnBoardingPage extends StatelessWidget { ), ); } -} \ No newline at end of file +} diff --git a/lib/common_widget/other/entete_home_view.dart b/lib/common_widget/other/entete_home_view.dart new file mode 100644 index 0000000..b5ab1e8 --- /dev/null +++ b/lib/common_widget/other/entete_home_view.dart @@ -0,0 +1,47 @@ +import 'package:flutter/material.dart'; +import 'package:smartfit_app_mobile/common/colo_extension.dart'; +import 'package:smartfit_app_mobile/view/home/notification_view.dart'; + +class EnteteHomeView extends StatelessWidget { + const EnteteHomeView({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Bienvenue,", + style: TextStyle(color: TColor.gray, fontSize: 12), + ), + Text( + "Benjelloun Othmane", + style: TextStyle( + color: TColor.black, + fontSize: 20, + fontWeight: FontWeight.w700), + ), + ], + ), + IconButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const NotificationView(), + ), + ); + }, + icon: Image.asset( + "assets/img/notification_active.png", + width: 25, + height: 25, + fit: BoxFit.fitHeight, + )) + ], + ); + } +} diff --git a/lib/common_widget/round_text_field.dart b/lib/common_widget/text_field/round_text_field.dart similarity index 97% rename from lib/common_widget/round_text_field.dart rename to lib/common_widget/text_field/round_text_field.dart index f93c6a2..b9a28b6 100644 --- a/lib/common_widget/round_text_field.dart +++ b/lib/common_widget/text_field/round_text_field.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import '../common/colo_extension.dart'; +import '../../common/colo_extension.dart'; class RoundTextField extends StatelessWidget { final TextEditingController? controller; diff --git a/lib/main.dart b/lib/main.dart index 28c7f13..8187d32 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:smartfit_app_mobile/modele/user.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'; diff --git a/lib/modele/activity.dart b/lib/modele/activity.dart index 413f99e..2b4ff76 100644 --- a/lib/modele/activity.dart +++ b/lib/modele/activity.dart @@ -1,5 +1,5 @@ import 'package:fl_chart/fl_chart.dart'; -import 'package:smartfit_app_mobile/common_widget/graph.dart'; +import 'package:smartfit_app_mobile/common_widget/graph/graph.dart'; class ActivityOfUser { late String _nomActivite; diff --git a/lib/modele/user.dart b/lib/modele/user.dart index d9715a8..c248810 100644 --- a/lib/modele/user.dart +++ b/lib/modele/user.dart @@ -9,7 +9,6 @@ class User extends ChangeNotifier { void addActivity(ActivityOfUser activity) { listActivity.add(activity); - print("add"); notifyListeners(); } diff --git a/lib/modele/utile/home_view/data_home_view.dart b/lib/modele/utile/home_view/data_home_view.dart new file mode 100644 index 0000000..cdf14a6 --- /dev/null +++ b/lib/modele/utile/home_view/data_home_view.dart @@ -0,0 +1,13 @@ +import 'package:fl_chart/fl_chart.dart'; + +class DataHomeView { + late List bpmSecondes; + late List bpmSecondes2; + late List vitesseSecondes; + + DataHomeView( + this.bpmSecondes, + this.bpmSecondes2, + this.vitesseSecondes, + ); +} diff --git a/lib/modele/utile/home_view/home_view_util.dart b/lib/modele/utile/home_view/home_view_util.dart new file mode 100644 index 0000000..abed685 --- /dev/null +++ b/lib/modele/utile/home_view/home_view_util.dart @@ -0,0 +1,37 @@ +import 'package:fl_chart/fl_chart.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:smartfit_app_mobile/modele/user.dart'; +import 'package:smartfit_app_mobile/modele/utile/home_view/data_home_view.dart'; + +class HomeViewUtil { + DataHomeView initData(BuildContext context) { + List bpmSecondes = + Provider.of(context).listActivity[0].getHeartRateWithTime(); + List vitesseSecondes = + Provider.of(context).listActivity[0].getSpeedWithTime(); + + List bpmSecondes2 = List.from(bpmSecondes); + return DataHomeView( + normaliserDeuxiemeElement(bpmSecondes), + normaliserDeuxiemeElement(bpmSecondes2), + normaliserDeuxiemeElement(vitesseSecondes)); + } + + List 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); + } + return liste; + } +} diff --git a/lib/view/activity/activity.dart b/lib/view/activity/activity.dart index 6e05af5..dac64eb 100644 --- a/lib/view/activity/activity.dart +++ b/lib/view/activity/activity.dart @@ -1,8 +1,8 @@ import 'package:provider/provider.dart'; import 'package:responsive_builder/responsive_builder.dart'; import 'package:smartfit_app_mobile/modele/user.dart'; -import 'package:smartfit_app_mobile/view/home/mobile/mobile_Activity_view.dart'; -import 'package:smartfit_app_mobile/view/home/web/web_Activity_view.dart'; +import 'package:smartfit_app_mobile/view/activity/mobile/mobile_Activity_view.dart'; +import 'package:smartfit_app_mobile/view/activity/web/web_Activity_view.dart'; import 'package:flutter/material.dart'; class Activity extends StatelessWidget { diff --git a/lib/view/activity/mobile/mobile_Activity_view.dart b/lib/view/activity/mobile/mobile_Activity_view.dart index 17af619..85c2d9a 100644 --- a/lib/view/activity/mobile/mobile_Activity_view.dart +++ b/lib/view/activity/mobile/mobile_Activity_view.dart @@ -1,6 +1,6 @@ import 'package:provider/provider.dart'; import 'package:smartfit_app_mobile/common_widget/steps.dart'; -import 'package:smartfit_app_mobile/common_widget/graph.dart'; +import 'package:smartfit_app_mobile/common_widget/graph/graph.dart'; import 'package:smartfit_app_mobile/common_widget/info.dart' hide Stats; import 'package:smartfit_app_mobile/common_widget/stats.dart'; import 'package:flutter/material.dart'; diff --git a/lib/view/activity/mobile/mobile_list_activity.dart b/lib/view/activity/mobile/mobile_list_activity.dart index ad4736f..2fd6656 100644 --- a/lib/view/activity/mobile/mobile_list_activity.dart +++ b/lib/view/activity/mobile/mobile_list_activity.dart @@ -6,7 +6,7 @@ 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/common_widget/workout_row.dart'; +import 'package:smartfit_app_mobile/common_widget/container/workout_row.dart'; import 'package:flutter/material.dart'; class MobileListActivity extends StatefulWidget { diff --git a/lib/view/activity/web/web_Activity_view.dart b/lib/view/activity/web/web_Activity_view.dart index 8f091ce..be3183d 100644 --- a/lib/view/activity/web/web_Activity_view.dart +++ b/lib/view/activity/web/web_Activity_view.dart @@ -1,5 +1,5 @@ import 'package:smartfit_app_mobile/common_widget/steps.dart'; -import 'package:smartfit_app_mobile/common_widget/graph.dart'; +import 'package:smartfit_app_mobile/common_widget/graph/graph.dart'; import 'package:smartfit_app_mobile/common_widget/info.dart' hide Stats; import 'package:smartfit_app_mobile/common_widget/stats.dart'; import 'package:flutter/material.dart'; diff --git a/lib/view/activity/web/web_list_activity.dart b/lib/view/activity/web/web_list_activity.dart index 3905c97..4e9e7f6 100644 --- a/lib/view/activity/web/web_list_activity.dart +++ b/lib/view/activity/web/web_list_activity.dart @@ -6,7 +6,7 @@ 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/common_widget/workout_row.dart'; +import 'package:smartfit_app_mobile/common_widget/container/workout_row.dart'; import 'package:flutter/material.dart'; class WebListActivity extends StatefulWidget { diff --git a/lib/view/home/mobile/mobile_homeview.dart b/lib/view/home/mobile/mobile_homeview.dart index 6d23570..235dc2f 100644 --- a/lib/view/home/mobile/mobile_homeview.dart +++ b/lib/view/home/mobile/mobile_homeview.dart @@ -1,16 +1,12 @@ -import 'package:dotted_dashed_line/dotted_dashed_line.dart'; import 'package:fl_chart/fl_chart.dart'; import 'package:flutter/material.dart'; -import 'package:provider/provider.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:smartfit_app_mobile/common_widget/container_stats.dart'; -import 'package:smartfit_app_mobile/common_widget/ligne_container_stats.dart'; -import 'package:smartfit_app_mobile/modele/user.dart'; +import 'package:smartfit_app_mobile/common_widget/container/ligne_container_stats.dart'; +import 'package:smartfit_app_mobile/common_widget/graph/bpm_and_speed_by_time.dart'; +import 'package:smartfit_app_mobile/common_widget/graph/bpm_by_time.dart'; +import 'package:smartfit_app_mobile/common_widget/other/entete_home_view.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart'; -import 'package:smartfit_app_mobile/common_widget/round_button.dart'; -import 'package:smartfit_app_mobile/view/home/activity_tracker.dart'; -import 'package:smartfit_app_mobile/view/home/notification_view.dart'; +import 'package:smartfit_app_mobile/modele/utile/home_view/data_home_view.dart'; +import 'package:smartfit_app_mobile/modele/utile/home_view/home_view_util.dart'; class MobileHomeView extends StatefulWidget { const MobileHomeView({super.key}); @@ -20,103 +16,14 @@ class MobileHomeView extends StatefulWidget { } class _MobileHomeView extends State { - List bpmSecondes = [FlSpot(0, 30)]; - List bpmSecondes2 = []; - double calories = 0.0; - List vitesseSecondes = [FlSpot(0, 30)]; - List altitudeSecondes = [FlSpot(0, 30)]; - + late DataHomeView data; 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", - "image": "assets/img/Workout1.png", - "kcal": "180", - "time": "20", - "progress": 0.3 - }, - { - "name": "Lower Body Workout", - "image": "assets/img/Workout2.png", - "kcal": "200", - "time": "30", - "progress": 0.4 - }, - { - "name": "Ab Workout", - "image": "assets/img/Workout3.png", - "kcal": "300", - "time": "40", - "progress": 0.7 - }, - ]; - List showingTooltipOnSpots = [0]; - - List waterArr = [ - {"title": "6am - 8am", "subtitle": "600ml"}, - {"title": "9am - 11am", "subtitle": "500ml"}, - {"title": "11am - 2pm", "subtitle": "1000ml"}, - {"title": "2pm - 4pm", "subtitle": "700ml"}, - {"title": "4pm - now", "subtitle": "900ml"}, - ]; - @override Widget build(BuildContext context) { var media = MediaQuery.of(context).size; - bpmSecondes = - Provider.of(context).listActivity[0].getHeartRateWithTime(); - vitesseSecondes = - Provider.of(context).listActivity[0].getSpeedWithTime(); - altitudeSecondes = - Provider.of(context).listActivity[0].getAltitudeWithTime(); - calories = double.parse( - Provider.of(context).listActivity[0].getTotalCalorie()); - - normaliserDeuxiemeElement(vitesseSecondes); - normaliserDeuxiemeElement(altitudeSecondes); - bpmSecondes2 = List.from(bpmSecondes); - normaliserDeuxiemeElement(bpmSecondes2); - - final lineBarsData = [ - LineChartBarData( - spots: bpmSecondes, - isCurved: false, - barWidth: 2, - belowBarData: BarAreaData( - show: true, - gradient: LinearGradient(colors: [ - TColor.secondaryColor1.withOpacity(0.4), - TColor.secondaryColor2.withOpacity(0.1), - ], begin: Alignment.topCenter, end: Alignment.bottomCenter), - ), - dotData: const FlDotData(show: false), - gradient: LinearGradient( - colors: TColor.secondaryG, - ), - ), - ]; - - final tooltipsOnBar = lineBarsData[0]; + data = HomeViewUtil().initData(context); return Scaffold( backgroundColor: TColor.white, @@ -127,42 +34,7 @@ class _MobileHomeView extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - "Bienvenue,", - style: TextStyle(color: TColor.gray, fontSize: 12), - ), - Text( - "Benjelloun Othmane", - style: TextStyle( - color: TColor.black, - fontSize: 20, - fontWeight: FontWeight.w700), - ), - ], - ), - IconButton( - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => const NotificationView(), - ), - ); - }, - icon: Image.asset( - "assets/img/notification_active.png", - width: 25, - height: 25, - fit: BoxFit.fitHeight, - )) - ], - ), + const EnteteHomeView(), SizedBox( height: media.width * 0.05, ), @@ -176,147 +48,7 @@ class _MobileHomeView extends State { SizedBox( height: media.width * 0.02, ), - ClipRRect( - borderRadius: BorderRadius.circular(25), - child: Container( - height: media.width * 0.4, - width: double.maxFinite, - decoration: BoxDecoration( - color: TColor.primaryColor2.withOpacity(0.3), - borderRadius: BorderRadius.circular(25), - ), - child: Stack( - alignment: Alignment.topLeft, - children: [ - Padding( - padding: const EdgeInsets.symmetric( - vertical: 20, horizontal: 20), - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - "Rythme cardiaque", - style: TextStyle( - color: TColor.black, - fontSize: 16, - fontWeight: FontWeight.w700), - ), - TextField( - controller: bpmController, - readOnly: true, - style: TextStyle( - color: - TColor.primaryColor1.withOpacity(0.8), - fontWeight: FontWeight.w700, - fontSize: 18), - decoration: const InputDecoration( - border: InputBorder - .none, // Ajoutez cette ligne pour supprimer la bordure - ), - ), - ], - ), - ), - LineChart( - LineChartData( - showingTooltipIndicators: - showingTooltipOnSpots.map((index) { - return ShowingTooltipIndicators([ - LineBarSpot( - tooltipsOnBar, - lineBarsData.indexOf(tooltipsOnBar), - tooltipsOnBar.spots[index], - ), - ]); - }).toList(), - lineTouchData: LineTouchData( - enabled: true, - handleBuiltInTouches: false, - touchCallback: (FlTouchEvent event, - LineTouchResponse? response) { - if (response == null || - response.lineBarSpots == null) { - return; - } - if (event is FlTapUpEvent) { - final spotIndex = - response.lineBarSpots!.first.spotIndex; - showingTooltipOnSpots.clear(); - setState(() { - showingTooltipOnSpots.add(spotIndex); - }); - } - }, - mouseCursorResolver: (FlTouchEvent event, - LineTouchResponse? response) { - if (response == null || - response.lineBarSpots == null) { - return SystemMouseCursors.basic; - } - return SystemMouseCursors.click; - }, - getTouchedSpotIndicator: - (LineChartBarData barData, - List spotIndexes) { - return spotIndexes.map((index) { - return TouchedSpotIndicatorData( - FlLine( - color: TColor.secondaryColor1, - ), - FlDotData( - show: true, - getDotPainter: - (spot, percent, barData, index) => - FlDotCirclePainter( - radius: 3, - color: Colors.white, - strokeWidth: 3, - strokeColor: TColor.secondaryColor1, - ), - ), - ); - }).toList(); - }, - touchTooltipData: LineTouchTooltipData( - tooltipBgColor: TColor.secondaryColor1, - tooltipRoundedRadius: 20, - getTooltipItems: - (List lineBarsSpot) { - return lineBarsSpot.map((lineBarSpot) { - bpmController.text = "${lineBarSpot.y} BPM"; - return LineTooltipItem( - "Seconde ${lineBarSpot.x.toInt() / 10}", - const TextStyle( - color: Colors.white, - fontSize: 10, - fontWeight: FontWeight.bold, - ), - ); - }).toList(); - }, - ), - ), - lineBarsData: lineBarsData, - minY: 50, - maxY: 250, - titlesData: const FlTitlesData( - show: false, - ), - gridData: const FlGridData(show: false), - borderData: FlBorderData( - show: true, - border: Border.all( - color: Colors.transparent, - ), - ), - ), - ) - ], - ), - ), - ), + GraphBpmByTime(media, data), SizedBox( height: media.width * 0.05, ), @@ -336,123 +68,16 @@ class _MobileHomeView extends State { SizedBox( height: media.width * 0.05, ), + GraphBpmAndSpeedByTime(media, data), + SizedBox( + height: media.width * 0.05, + ), + const LigneContainerStats("1", "2", "3", "s", "s", "s"), Container( padding: const EdgeInsets.only(left: 15), height: media.width * 0.5, width: double.maxFinite, - child: LineChart( - LineChartData( - showingTooltipIndicators: - showingTooltipOnSpots.map((index) { - return ShowingTooltipIndicators([ - LineBarSpot( - tooltipsOnBar, - lineBarsData.indexOf(tooltipsOnBar), - tooltipsOnBar.spots[index], - ), - ]); - }).toList(), - lineTouchData: LineTouchData( - enabled: true, - handleBuiltInTouches: false, - touchCallback: (FlTouchEvent event, - LineTouchResponse? response) { - if (response == null || - response.lineBarSpots == null) { - return; - } - if (event is FlTapUpEvent) { - final spotIndex = - response.lineBarSpots!.first.spotIndex; - showingTooltipOnSpots.clear(); - setState(() { - showingTooltipOnSpots.add(spotIndex); - }); - } - }, - mouseCursorResolver: (FlTouchEvent event, - LineTouchResponse? response) { - if (response == null || - response.lineBarSpots == null) { - return SystemMouseCursors.basic; - } - return SystemMouseCursors.click; - }, - getTouchedSpotIndicator: (LineChartBarData barData, - List spotIndexes) { - return spotIndexes.map((index) { - return TouchedSpotIndicatorData( - const FlLine( - color: Colors.transparent, - ), - FlDotData( - show: true, - getDotPainter: - (spot, percent, barData, index) => - FlDotCirclePainter( - radius: 3, - color: Colors.white, - strokeWidth: 3, - strokeColor: TColor.secondaryColor1, - ), - ), - ); - }).toList(); - }, - touchTooltipData: LineTouchTooltipData( - tooltipBgColor: TColor.secondaryColor1, - tooltipRoundedRadius: 20, - getTooltipItems: (List lineBarsSpot) { - return lineBarsSpot.map((lineBarSpot) { - return LineTooltipItem( - "Seconde ${lineBarSpot.x.toInt() / 10} ", - const TextStyle( - color: Colors.white, - fontSize: 10, - fontWeight: FontWeight.bold, - ), - ); - }).toList(); - }, - ), - ), - lineBarsData: lineBarsData1, - minY: 0, - maxY: 110, - titlesData: FlTitlesData( - show: true, - leftTitles: const AxisTitles(), - topTitles: const AxisTitles(), - bottomTitles: const AxisTitles(), - rightTitles: AxisTitles( - sideTitles: rightTitles, - )), - gridData: FlGridData( - show: true, - drawHorizontalLine: true, - horizontalInterval: 25, - drawVerticalLine: false, - getDrawingHorizontalLine: (value) { - return FlLine( - color: TColor.gray.withOpacity(0.15), - strokeWidth: 2, - ); - }, - ), - borderData: FlBorderData( - show: true, - border: Border.all( - color: Colors.transparent, - ), - ), - ), - )), - SizedBox( - height: media.width * 0.05, - ), - SizedBox( - height: media.width * 0.1, - ), + child: LineChart(LineChartData())) ], ), ), @@ -460,168 +85,4 @@ class _MobileHomeView extends State { ), ); } - - List showingSections() { - return List.generate( - 2, - (i) { - var color0 = TColor.secondaryColor1; - - switch (i) { - case 0: - return PieChartSectionData( - color: color0, - value: 33, - title: '', - radius: 55, - titlePositionPercentageOffset: 0.55, - badgeWidget: const Text( - "20,1", - style: TextStyle( - color: Colors.white, - fontSize: 12, - fontWeight: FontWeight.w700), - )); - case 1: - return PieChartSectionData( - color: Colors.white, - value: 75, - title: '', - radius: 45, - titlePositionPercentageOffset: 0.55, - ); - - default: - throw Error(); - } - }, - ); - } - - LineTouchData get lineTouchData1 => LineTouchData( - handleBuiltInTouches: true, - touchTooltipData: LineTouchTooltipData( - tooltipBgColor: Colors.blueGrey.withOpacity(0.8), - ), - ); - - List get lineBarsData1 => [ - lineChartBarData1_1, - lineChartBarData1_2, - ]; - - LineChartBarData get lineChartBarData1_1 => LineChartBarData( - isCurved: true, - gradient: LinearGradient(colors: [ - TColor.primaryColor2.withOpacity(0.5), - TColor.primaryColor1.withOpacity(0.5), - ]), - barWidth: 4, - isStrokeCapRound: true, - dotData: const FlDotData(show: false), - belowBarData: BarAreaData(show: false), - spots: vitesseSecondes, - ); - - LineChartBarData get lineChartBarData1_2 => LineChartBarData( - isCurved: true, - gradient: LinearGradient(colors: [ - TColor.secondaryColor2.withOpacity(0.5), - TColor.secondaryColor1.withOpacity(0.5), - ]), - barWidth: 2, - isStrokeCapRound: true, - dotData: const FlDotData(show: false), - belowBarData: BarAreaData( - show: false, - ), - spots: bpmSecondes2, - ); - - SideTitles get rightTitles => SideTitles( - getTitlesWidget: rightTitleWidgets, - showTitles: true, - interval: 20, - reservedSize: 40, - ); - - Widget rightTitleWidgets(double value, TitleMeta meta) { - String text; - switch (value.toInt()) { - case 0: - text = '0%'; - break; - case 20: - text = '20%'; - break; - case 40: - text = '40%'; - break; - case 60: - text = '60%'; - break; - case 80: - text = '80%'; - break; - case 100: - text = '100%'; - break; - default: - return Container(); - } - - return Text(text, - style: TextStyle( - color: TColor.gray, - fontSize: 12, - ), - textAlign: TextAlign.center); - } - - SideTitles get bottomTitles => SideTitles( - showTitles: true, - reservedSize: 50, - interval: 1, - getTitlesWidget: bottomTitleWidgets, - ); - - Widget bottomTitleWidgets(double value, TitleMeta meta) { - var style = TextStyle( - color: TColor.gray, - fontSize: 12, - ); - Widget text; - switch (value.toInt()) { - case 1: - text = Text('Dim', style: style); - break; - case 2: - text = Text('Lun', style: style); - break; - case 3: - text = Text('Mar', style: style); - break; - case 4: - text = Text('Mer', style: style); - break; - case 5: - text = Text('Jeu', style: style); - break; - case 6: - text = Text('Ven', style: style); - break; - case 7: - text = Text('Sam', style: style); - break; - default: - text = Text('', style: style); - break; - } - - return SideTitleWidget( - axisSide: meta.axisSide, - space: 10, - child: text, - ); - } } diff --git a/lib/view/home/notification_view.dart b/lib/view/home/notification_view.dart index c8e46c5..53de5c5 100644 --- a/lib/view/home/notification_view.dart +++ b/lib/view/home/notification_view.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import '../../common/colo_extension.dart'; -import '../../common_widget/notification_row.dart'; +import '../../common_widget/not_use/notification_row.dart'; class NotificationView extends StatefulWidget { const NotificationView({super.key}); @@ -12,12 +12,36 @@ class NotificationView extends StatefulWidget { class _NotificationViewState extends State { List notificationArr = [ - {"image": "assets/img/workout1.svg", "title": "Hey, c'est l'heure du sport", "time": "Il y a 3 minutes"}, - {"image": "assets/img/workout1.svg", "title": "Ne manque pas ton entrainement", "time": "Il y a 7 minutes"}, - {"image": "assets/img/workout1.svg", "title": "Hey, c'est l'heure du sport", "time": "Il y a 5 jours"}, - {"image": "assets/img/workout1.svg", "title": "Ne manque pas ton entrainement", "time": "29 Mai"}, - {"image": "assets/img/workout1.svg", "title": "Hey, c'est l'heure du sport", "time": "8 Avril"}, - {"image": "assets/img/workout1.svg", "title": "Ne manque pas ton entrainement", "time": "8 Avril"}, + { + "image": "assets/img/workout1.svg", + "title": "Hey, c'est l'heure du sport", + "time": "Il y a 3 minutes" + }, + { + "image": "assets/img/workout1.svg", + "title": "Ne manque pas ton entrainement", + "time": "Il y a 7 minutes" + }, + { + "image": "assets/img/workout1.svg", + "title": "Hey, c'est l'heure du sport", + "time": "Il y a 5 jours" + }, + { + "image": "assets/img/workout1.svg", + "title": "Ne manque pas ton entrainement", + "time": "29 Mai" + }, + { + "image": "assets/img/workout1.svg", + "title": "Hey, c'est l'heure du sport", + "time": "8 Avril" + }, + { + "image": "assets/img/workout1.svg", + "title": "Ne manque pas ton entrainement", + "time": "8 Avril" + }, ]; @override @@ -75,13 +99,18 @@ class _NotificationViewState extends State { ), backgroundColor: TColor.white, body: ListView.separated( - padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 25), - itemBuilder: ((context, index) { - var nObj = notificationArr[index] as Map? ?? {}; - return NotificationRow(nObj: nObj); - }), separatorBuilder: (context, index){ - return Divider(color: TColor.gray.withOpacity(0.5), height: 1, ); - }, itemCount: notificationArr.length), + padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 25), + itemBuilder: ((context, index) { + var nObj = notificationArr[index] as Map? ?? {}; + return NotificationRow(nObj: nObj); + }), + separatorBuilder: (context, index) { + return Divider( + color: TColor.gray.withOpacity(0.5), + height: 1, + ); + }, + itemCount: notificationArr.length), ); } -} \ No newline at end of file +} diff --git a/lib/view/home/web/web_homeview.dart b/lib/view/home/web/web_homeview.dart index 9c63d2c..f95605c 100644 --- a/lib/view/home/web/web_homeview.dart +++ b/lib/view/home/web/web_homeview.dart @@ -6,7 +6,7 @@ import 'package:simple_animation_progress_bar/simple_animation_progress_bar.dart import 'package:simple_circular_progress_bar/simple_circular_progress_bar.dart'; import 'package:smartfit_app_mobile/modele/user.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart'; -import 'package:smartfit_app_mobile/common_widget/round_button.dart'; +import 'package:smartfit_app_mobile/common_widget/button/round_button.dart'; import 'package:smartfit_app_mobile/view/home/activity_tracker.dart'; import 'package:smartfit_app_mobile/view/home/notification_view.dart'; diff --git a/lib/view/login/mobile/android_login_view.dart b/lib/view/login/mobile/android_login_view.dart index 1fe51f3..0d825f4 100644 --- a/lib/view/login/mobile/android_login_view.dart +++ b/lib/view/login/mobile/android_login_view.dart @@ -3,8 +3,8 @@ import 'package:flutter_svg/svg.dart'; import 'package:smartfit_app_mobile/modele/utile/login_user.dart'; import 'package:smartfit_app_mobile/view/main_tab/main_tab_view.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart'; -import 'package:smartfit_app_mobile/common_widget/round_button.dart'; -import 'package:smartfit_app_mobile/common_widget/round_text_field.dart'; +import 'package:smartfit_app_mobile/common_widget/button/round_button.dart'; +import 'package:smartfit_app_mobile/common_widget/text_field/round_text_field.dart'; import 'package:tuple/tuple.dart'; class MobileLoginView extends StatefulWidget { diff --git a/lib/view/login/mobile/android_signup_view.dart b/lib/view/login/mobile/android_signup_view.dart index 7c39c1c..094a5f6 100644 --- a/lib/view/login/mobile/android_signup_view.dart +++ b/lib/view/login/mobile/android_signup_view.dart @@ -3,8 +3,8 @@ import 'package:flutter_svg/svg.dart'; import 'package:smartfit_app_mobile/modele/utile/signup_user.dart'; import 'package:smartfit_app_mobile/view/login/login_view.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart'; -import 'package:smartfit_app_mobile/common_widget/round_button.dart'; -import 'package:smartfit_app_mobile/common_widget/round_text_field.dart'; +import 'package:smartfit_app_mobile/common_widget/button/round_button.dart'; +import 'package:smartfit_app_mobile/common_widget/text_field/round_text_field.dart'; import 'package:tuple/tuple.dart'; class MobileSignUpView extends StatefulWidget { diff --git a/lib/view/login/web/web_login_view.dart b/lib/view/login/web/web_login_view.dart index ceecf45..743048e 100644 --- a/lib/view/login/web/web_login_view.dart +++ b/lib/view/login/web/web_login_view.dart @@ -3,8 +3,8 @@ import 'package:flutter_svg/svg.dart'; import 'package:smartfit_app_mobile/modele/utile/login_user.dart'; import 'package:smartfit_app_mobile/view/main_tab/main_tab_view.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart'; -import 'package:smartfit_app_mobile/common_widget/round_button.dart'; -import 'package:smartfit_app_mobile/common_widget/round_text_field.dart'; +import 'package:smartfit_app_mobile/common_widget/button/round_button.dart'; +import 'package:smartfit_app_mobile/common_widget/text_field/round_text_field.dart'; import 'package:tuple/tuple.dart'; class WebLoginView extends StatefulWidget { diff --git a/lib/view/login/web/web_signup_view.dart b/lib/view/login/web/web_signup_view.dart index 46a7087..d026b90 100644 --- a/lib/view/login/web/web_signup_view.dart +++ b/lib/view/login/web/web_signup_view.dart @@ -3,8 +3,8 @@ import 'package:flutter_svg/svg.dart'; import 'package:smartfit_app_mobile/modele/utile/signup_user.dart'; import 'package:smartfit_app_mobile/view/login/login_view.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart'; -import 'package:smartfit_app_mobile/common_widget/round_button.dart'; -import 'package:smartfit_app_mobile/common_widget/round_text_field.dart'; +import 'package:smartfit_app_mobile/common_widget/button/round_button.dart'; +import 'package:smartfit_app_mobile/common_widget/text_field/round_text_field.dart'; import 'package:tuple/tuple.dart'; class WebSignUpView extends StatefulWidget { diff --git a/lib/view/main_tab/main_tab_view.dart b/lib/view/main_tab/main_tab_view.dart index 8655b38..28641a4 100644 --- a/lib/view/main_tab/main_tab_view.dart +++ b/lib/view/main_tab/main_tab_view.dart @@ -1,6 +1,6 @@ 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/common_widget/button/tab_button.dart'; import 'package:smartfit_app_mobile/view/activity/activity.dart'; import 'package:smartfit_app_mobile/view/home/home_view.dart'; import 'package:flutter/material.dart'; diff --git a/lib/view/on_boarding/on_boarding_view.dart b/lib/view/on_boarding/on_boarding_view.dart index 1c59bf0..a9c3ca8 100644 --- a/lib/view/on_boarding/on_boarding_view.dart +++ b/lib/view/on_boarding/on_boarding_view.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart'; -import 'package:smartfit_app_mobile/common_widget/on_boarding_page.dart'; +import 'package:smartfit_app_mobile/common_widget/on_boarding/on_boarding_page.dart'; import 'package:smartfit_app_mobile/view/login/signup_view.dart'; class OnBoardingView extends StatefulWidget { diff --git a/lib/view/on_boarding/started_view.dart b/lib/view/on_boarding/started_view.dart index 710c905..098e4df 100644 --- a/lib/view/on_boarding/started_view.dart +++ b/lib/view/on_boarding/started_view.dart @@ -1,7 +1,7 @@ import 'package:smartfit_app_mobile/common/colo_extension.dart'; import 'package:smartfit_app_mobile/view/on_boarding/on_boarding_view.dart'; import 'package:flutter/material.dart'; -import '../../common_widget/round_button.dart'; +import '../../common_widget/button/round_button.dart'; import 'package:flutter_svg/flutter_svg.dart'; class StartedView extends StatefulWidget { diff --git a/lib/view/profile/mobile/mobile_profile_view.dart b/lib/view/profile/mobile/mobile_profile_view.dart index 34c5e9d..9ef1fbe 100644 --- a/lib/view/profile/mobile/mobile_profile_view.dart +++ b/lib/view/profile/mobile/mobile_profile_view.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:animated_toggle_switch/animated_toggle_switch.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart'; -import 'package:smartfit_app_mobile/common_widget/round_button.dart'; +import 'package:smartfit_app_mobile/common_widget/button/round_button.dart'; import 'package:smartfit_app_mobile/common_widget/setting_row.dart'; import 'package:smartfit_app_mobile/common_widget/title_subtitle_cell.dart'; diff --git a/lib/view/profile/web/web_profile_view.dart b/lib/view/profile/web/web_profile_view.dart index 219d6ce..a58a07d 100644 --- a/lib/view/profile/web/web_profile_view.dart +++ b/lib/view/profile/web/web_profile_view.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:animated_toggle_switch/animated_toggle_switch.dart'; import 'package:smartfit_app_mobile/common/colo_extension.dart'; -import 'package:smartfit_app_mobile/common_widget/round_button.dart'; +import 'package:smartfit_app_mobile/common_widget/button/round_button.dart'; import 'package:smartfit_app_mobile/common_widget/setting_row.dart'; import 'package:smartfit_app_mobile/common_widget/title_subtitle_cell.dart';