From d5196fda45f738cf337a18ffc95ae46d8c11b1cb Mon Sep 17 00:00:00 2001 From: Mohammad Salameh Date: Wed, 21 Feb 2024 13:47:08 +0300 Subject: [PATCH] initialized Routine Page --- assets/icons/Devices.svg | 30 +- assets/icons/Hot 1.jpg | Bin 0 -> 4877 bytes assets/icons/Layout.svg | 30 +- assets/icons/Winter 1.jpg | Bin 0 -> 4436 bytes assets/icons/Winter_mode.svg | 9 + assets/icons/home-2.svg | 2 +- assets/icons/home.jpg | Bin 0 -> 1322 bytes assets/icons/home.svg | 18 +- assets/icons/summer_mode.svg | 9 + .../bloc/nav_cubit.dart | 0 .../bloc/nav_state.dart | 0 .../view/app_layout.dart} | 12 +- .../view/widgets/app_bar_home_dropdown.dart | 9 +- .../view/widgets/app_body.dart | 8 +- .../view/widgets/default_app_bar.dart | 4 +- .../view/widgets/default_nav_bar.dart | 2 +- .../dashboard/view/dashboard_view.dart | 63 ++- .../view/{ => widgets}/carbon_emission.dart | 2 +- .../view/{ => widgets}/card_title.dart | 0 .../view/{ => widgets}/consumption.dart | 2 +- .../view/{ => widgets}/energy_usage.dart | 2 +- .../{ => widgets}/energy_usage_header.dart | 2 +- .../view/{ => widgets}/live_monitor_tab.dart | 2 +- .../{ => widgets}/live_monitor_widget.dart | 0 lib/features/scene/bloc/scene_cubit.dart | 2 +- lib/features/scene/view/scene_view.dart | 104 +++- .../text_widgets/body_medium.dart | 11 +- lib/my_app.dart | 4 +- lib/navigation/router.dart | 4 +- .../resource_manager/assets_manager.dart | 6 +- lib/utils/resource_manager/color_manager.dart | 6 +- .../resource_manager/strings_manager.dart | 4 + lib/utils/resource_manager/theme_manager.dart | 458 ++++++++++++------ 33 files changed, 569 insertions(+), 236 deletions(-) create mode 100644 assets/icons/Hot 1.jpg create mode 100644 assets/icons/Winter 1.jpg create mode 100644 assets/icons/Winter_mode.svg create mode 100644 assets/icons/home.jpg create mode 100644 assets/icons/summer_mode.svg rename lib/features/{navigation => app_layout}/bloc/nav_cubit.dart (100%) rename lib/features/{navigation => app_layout}/bloc/nav_state.dart (100%) rename lib/features/{navigation/view/navigation_view.dart => app_layout/view/app_layout.dart} (74%) rename lib/features/{navigation => app_layout}/view/widgets/app_bar_home_dropdown.dart (78%) rename lib/features/{navigation => app_layout}/view/widgets/app_body.dart (75%) rename lib/features/{navigation => app_layout}/view/widgets/default_app_bar.dart (88%) rename lib/features/{navigation => app_layout}/view/widgets/default_nav_bar.dart (95%) rename lib/features/dashboard/view/{ => widgets}/carbon_emission.dart (97%) rename lib/features/dashboard/view/{ => widgets}/card_title.dart (100%) rename lib/features/dashboard/view/{ => widgets}/consumption.dart (96%) rename lib/features/dashboard/view/{ => widgets}/energy_usage.dart (91%) rename lib/features/dashboard/view/{ => widgets}/energy_usage_header.dart (96%) rename lib/features/dashboard/view/{ => widgets}/live_monitor_tab.dart (91%) rename lib/features/dashboard/view/{ => widgets}/live_monitor_widget.dart (100%) diff --git a/assets/icons/Devices.svg b/assets/icons/Devices.svg index 00904ad..51d527c 100644 --- a/assets/icons/Devices.svg +++ b/assets/icons/Devices.svg @@ -1,13 +1,21 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/assets/icons/Hot 1.jpg b/assets/icons/Hot 1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5281185568c0dfbca3b01230ab606d7fc5f03812 GIT binary patch literal 4877 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 MfDqso;B@ML0A_tDQvd(} literal 0 HcmV?d00001 diff --git a/assets/icons/Layout.svg b/assets/icons/Layout.svg index 568b6d7..4756e3b 100644 --- a/assets/icons/Layout.svg +++ b/assets/icons/Layout.svg @@ -1,13 +1,21 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/assets/icons/Winter 1.jpg b/assets/icons/Winter 1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..12e8b5634fc2907dba66b08fc769f6b6de706d1b GIT binary patch literal 4436 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 + + + + + + + + diff --git a/assets/icons/home-2.svg b/assets/icons/home-2.svg index d700dde..9ab0dca 100644 --- a/assets/icons/home-2.svg +++ b/assets/icons/home-2.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/home.jpg b/assets/icons/home.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8b2062619737b9a527bf9e04d33bffe7e7693a06 GIT binary patch literal 1322 zcmex=Jq?U}9uuW@2GxWo2Ojs;&jfGq4D< z3Mm>ovIz$!vMUve7&T5@$f4}C@t|nX#SbdRNkvVZTw>x9l2WQ_>Kd9_CZ=ZQ7M51d zF0O9w9-dyoA)#U65s^{JDXD4c8JStdC8cHM6_r)ZEv;?s9i3g1CQq3GGAU*RJ2VdF$b$$4{OP zfBE|D`;VW$K>lK6V1@@7#A9gw0tNyj6AKG73p>bPj7;S~%q+;ls%Xe2Sr_kH-! z&}U=F@SmZz^Mmz~I;)R<>mS75%09G#QT1E@y0{N*~!LziX<}o^2DOq`NC~O|?1KZMps0dgTFotN#os`+K*| z-}Im1kKliX2k(z*%X8Kr3SSfP!|xog{Gn^x4PW{{y5Au$_)kCPhqGgU&{ZCBwp+ID zNB*g9+;QDBQ(^b6u7mn|%5AS6Dm6Lq*MD$7-hb=%!}Z74H{a*jpKZ@y!*Zp>|CXA* z)XV=2e0xGa@cj68$)By_`GJ2DvyXlMC;0K${KvarKfku+Z1CY}Rf{t2XhmJEZ~U?PF;~2AkEYntN7=sm{yVQk9gn}P^JJE1Vx)d< zlG%1&El - - - - - - - + + + + + + + + diff --git a/assets/icons/summer_mode.svg b/assets/icons/summer_mode.svg new file mode 100644 index 0000000..d5de0a4 --- /dev/null +++ b/assets/icons/summer_mode.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/lib/features/navigation/bloc/nav_cubit.dart b/lib/features/app_layout/bloc/nav_cubit.dart similarity index 100% rename from lib/features/navigation/bloc/nav_cubit.dart rename to lib/features/app_layout/bloc/nav_cubit.dart diff --git a/lib/features/navigation/bloc/nav_state.dart b/lib/features/app_layout/bloc/nav_state.dart similarity index 100% rename from lib/features/navigation/bloc/nav_state.dart rename to lib/features/app_layout/bloc/nav_state.dart diff --git a/lib/features/navigation/view/navigation_view.dart b/lib/features/app_layout/view/app_layout.dart similarity index 74% rename from lib/features/navigation/view/navigation_view.dart rename to lib/features/app_layout/view/app_layout.dart index 661b44f..39605f8 100644 --- a/lib/features/navigation/view/navigation_view.dart +++ b/lib/features/app_layout/view/app_layout.dart @@ -1,14 +1,14 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:syncrow_app/features/navigation/bloc/nav_cubit.dart'; -import 'package:syncrow_app/features/navigation/view/widgets/app_body.dart'; -import 'package:syncrow_app/features/navigation/view/widgets/default_app_bar.dart'; -import 'package:syncrow_app/features/navigation/view/widgets/default_nav_bar.dart'; +import 'package:syncrow_app/features/app_layout/bloc/nav_cubit.dart'; +import 'package:syncrow_app/features/app_layout/view/widgets/app_body.dart'; +import 'package:syncrow_app/features/app_layout/view/widgets/default_app_bar.dart'; +import 'package:syncrow_app/features/app_layout/view/widgets/default_nav_bar.dart'; import 'package:syncrow_app/utils/resource_manager/color_manager.dart'; -class NavigationView extends StatelessWidget { - const NavigationView({super.key}); +class AppLayout extends StatelessWidget { + const AppLayout({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/features/navigation/view/widgets/app_bar_home_dropdown.dart b/lib/features/app_layout/view/widgets/app_bar_home_dropdown.dart similarity index 78% rename from lib/features/navigation/view/widgets/app_bar_home_dropdown.dart rename to lib/features/app_layout/view/widgets/app_bar_home_dropdown.dart index e5c622c..5f60533 100644 --- a/lib/features/navigation/view/widgets/app_bar_home_dropdown.dart +++ b/lib/features/app_layout/view/widgets/app_bar_home_dropdown.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:gap/gap.dart'; import 'package:syncrow_app/utils/resource_manager/assets_manager.dart'; +import 'package:syncrow_app/utils/resource_manager/color_manager.dart'; import '../../../shared_widgets/text_widgets/body_large.dart'; @@ -22,8 +23,12 @@ class AppBarHomeDropdown extends StatelessWidget { children: [ SvgPicture.asset( IconsManager.home, - width: 30, - height: 30, + width: 25, + height: 25, + colorFilter: const ColorFilter.mode( + ColorsManager.textPrimaryColor, + BlendMode.srcIn, + ), ), const Gap(5), const BodyLarge(text: 'Home'), diff --git a/lib/features/navigation/view/widgets/app_body.dart b/lib/features/app_layout/view/widgets/app_body.dart similarity index 75% rename from lib/features/navigation/view/widgets/app_body.dart rename to lib/features/app_layout/view/widgets/app_body.dart index a700fe2..60e1652 100644 --- a/lib/features/navigation/view/widgets/app_body.dart +++ b/lib/features/app_layout/view/widgets/app_body.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:syncrow_app/features/navigation/bloc/nav_cubit.dart'; +import 'package:syncrow_app/features/app_layout/bloc/nav_cubit.dart'; import 'package:syncrow_app/utils/resource_manager/assets_manager.dart'; class AppBody extends StatelessWidget { @@ -24,7 +24,11 @@ class AppBody extends StatelessWidget { opacity: 0.4, ), ), - child: NavCubit.of(context).currentPage, + child: Padding( + padding: const EdgeInsets.only( + top: 60, right: 15, left: 15, bottom: 100), + child: NavCubit.of(context).currentPage, + ), ); }, ); diff --git a/lib/features/navigation/view/widgets/default_app_bar.dart b/lib/features/app_layout/view/widgets/default_app_bar.dart similarity index 88% rename from lib/features/navigation/view/widgets/default_app_bar.dart rename to lib/features/app_layout/view/widgets/default_app_bar.dart index f4a3d2b..0118385 100644 --- a/lib/features/navigation/view/widgets/default_app_bar.dart +++ b/lib/features/app_layout/view/widgets/default_app_bar.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:syncrow_app/features/navigation/bloc/nav_cubit.dart'; -import 'package:syncrow_app/features/navigation/view/widgets/app_bar_home_dropdown.dart'; +import 'package:syncrow_app/features/app_layout/bloc/nav_cubit.dart'; +import 'package:syncrow_app/features/app_layout/view/widgets/app_bar_home_dropdown.dart'; class DefaultAppBar extends StatelessWidget implements PreferredSizeWidget { const DefaultAppBar({super.key}); diff --git a/lib/features/navigation/view/widgets/default_nav_bar.dart b/lib/features/app_layout/view/widgets/default_nav_bar.dart similarity index 95% rename from lib/features/navigation/view/widgets/default_nav_bar.dart rename to lib/features/app_layout/view/widgets/default_nav_bar.dart index 57fef54..150227a 100644 --- a/lib/features/navigation/view/widgets/default_nav_bar.dart +++ b/lib/features/app_layout/view/widgets/default_nav_bar.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:syncrow_app/features/navigation/bloc/nav_cubit.dart'; +import 'package:syncrow_app/features/app_layout/bloc/nav_cubit.dart'; import 'package:syncrow_app/utils/resource_manager/color_manager.dart'; class DefaultNavBar extends StatelessWidget { diff --git a/lib/features/dashboard/view/dashboard_view.dart b/lib/features/dashboard/view/dashboard_view.dart index 8d76c60..eb9340f 100644 --- a/lib/features/dashboard/view/dashboard_view.dart +++ b/lib/features/dashboard/view/dashboard_view.dart @@ -1,49 +1,46 @@ import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; -import 'package:syncrow_app/features/dashboard/view/carbon_emission.dart'; -import 'package:syncrow_app/features/dashboard/view/consumption.dart'; -import 'package:syncrow_app/features/dashboard/view/live_monitor_tab.dart'; +import 'package:syncrow_app/features/dashboard/view/widgets/carbon_emission.dart'; +import 'package:syncrow_app/features/dashboard/view/widgets/consumption.dart'; +import 'package:syncrow_app/features/dashboard/view/widgets/live_monitor_tab.dart'; import 'package:syncrow_app/features/shared_widgets/text_widgets/title_medium.dart'; import 'package:syncrow_app/utils/resource_manager/strings_manager.dart'; -import 'energy_usage.dart'; +import 'widgets/energy_usage.dart'; class DashboardView extends StatelessWidget { const DashboardView({super.key}); @override Widget build(BuildContext context) { - return const Padding( - padding: EdgeInsets.only(top: 60, right: 15, left: 15, bottom: 100), - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - TitleMedium( - text: StringsManager.dashboard, - style: TextStyle( - fontSize: 32, - fontWeight: FontWeight.bold, + return const Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + TitleMedium( + text: StringsManager.dashboard, + style: TextStyle( + fontSize: 32, + fontWeight: FontWeight.bold, + ), + ), + LiveMonitorTab(), + Gap(10), + EnergyUsage(), + Expanded( + child: Padding( + padding: EdgeInsets.only(top: 20), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Consumption(), + Gap(20), + CarbonEmission(), + ], ), ), - LiveMonitorTab(), - Gap(10), - EnergyUsage(), - Expanded( - child: Padding( - padding: EdgeInsets.only(top: 20), - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Consumption(), - Gap(20), - CarbonEmission(), - ], - ), - ), - ), - ], - ), + ), + ], ); } } diff --git a/lib/features/dashboard/view/carbon_emission.dart b/lib/features/dashboard/view/widgets/carbon_emission.dart similarity index 97% rename from lib/features/dashboard/view/carbon_emission.dart rename to lib/features/dashboard/view/widgets/carbon_emission.dart index 8691729..82db69a 100644 --- a/lib/features/dashboard/view/carbon_emission.dart +++ b/lib/features/dashboard/view/widgets/carbon_emission.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:gap/gap.dart'; -import 'package:syncrow_app/features/dashboard/view/card_title.dart'; +import 'package:syncrow_app/features/dashboard/view/widgets/card_title.dart'; import 'package:syncrow_app/features/shared_widgets/text_widgets/body_small.dart'; import 'package:syncrow_app/features/shared_widgets/united_text.dart'; import 'package:syncrow_app/utils/resource_manager/assets_manager.dart'; diff --git a/lib/features/dashboard/view/card_title.dart b/lib/features/dashboard/view/widgets/card_title.dart similarity index 100% rename from lib/features/dashboard/view/card_title.dart rename to lib/features/dashboard/view/widgets/card_title.dart diff --git a/lib/features/dashboard/view/consumption.dart b/lib/features/dashboard/view/widgets/consumption.dart similarity index 96% rename from lib/features/dashboard/view/consumption.dart rename to lib/features/dashboard/view/widgets/consumption.dart index fafba8a..ceaa330 100644 --- a/lib/features/dashboard/view/consumption.dart +++ b/lib/features/dashboard/view/widgets/consumption.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; -import 'package:syncrow_app/features/dashboard/view/card_title.dart'; +import 'package:syncrow_app/features/dashboard/view/widgets/card_title.dart'; import 'package:syncrow_app/features/shared_widgets/united_text.dart'; import 'package:syncrow_app/utils/resource_manager/assets_manager.dart'; import 'package:syncrow_app/utils/resource_manager/strings_manager.dart'; diff --git a/lib/features/dashboard/view/energy_usage.dart b/lib/features/dashboard/view/widgets/energy_usage.dart similarity index 91% rename from lib/features/dashboard/view/energy_usage.dart rename to lib/features/dashboard/view/widgets/energy_usage.dart index d05edf8..c05cadb 100644 --- a/lib/features/dashboard/view/energy_usage.dart +++ b/lib/features/dashboard/view/widgets/energy_usage.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:syncrow_app/features/dashboard/view/energy_usage_header.dart'; +import 'package:syncrow_app/features/dashboard/view/widgets/energy_usage_header.dart'; import 'package:syncrow_app/utils/resource_manager/assets_manager.dart'; class EnergyUsage extends StatelessWidget { diff --git a/lib/features/dashboard/view/energy_usage_header.dart b/lib/features/dashboard/view/widgets/energy_usage_header.dart similarity index 96% rename from lib/features/dashboard/view/energy_usage_header.dart rename to lib/features/dashboard/view/widgets/energy_usage_header.dart index 05585da..ddd9a09 100644 --- a/lib/features/dashboard/view/energy_usage_header.dart +++ b/lib/features/dashboard/view/widgets/energy_usage_header.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:syncrow_app/features/dashboard/view/card_title.dart'; +import 'package:syncrow_app/features/dashboard/view/widgets/card_title.dart'; import 'package:syncrow_app/features/shared_widgets/text_widgets/body_small.dart'; import 'package:syncrow_app/features/shared_widgets/united_text.dart'; import 'package:syncrow_app/utils/resource_manager/strings_manager.dart'; diff --git a/lib/features/dashboard/view/live_monitor_tab.dart b/lib/features/dashboard/view/widgets/live_monitor_tab.dart similarity index 91% rename from lib/features/dashboard/view/live_monitor_tab.dart rename to lib/features/dashboard/view/widgets/live_monitor_tab.dart index 71b8ede..8b343aa 100644 --- a/lib/features/dashboard/view/live_monitor_tab.dart +++ b/lib/features/dashboard/view/widgets/live_monitor_tab.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:syncrow_app/features/dashboard/view/live_monitor_widget.dart'; +import 'package:syncrow_app/features/dashboard/view/widgets/live_monitor_widget.dart'; import 'package:syncrow_app/utils/resource_manager/assets_manager.dart'; import 'package:syncrow_app/utils/resource_manager/strings_manager.dart'; diff --git a/lib/features/dashboard/view/live_monitor_widget.dart b/lib/features/dashboard/view/widgets/live_monitor_widget.dart similarity index 100% rename from lib/features/dashboard/view/live_monitor_widget.dart rename to lib/features/dashboard/view/widgets/live_monitor_widget.dart diff --git a/lib/features/scene/bloc/scene_cubit.dart b/lib/features/scene/bloc/scene_cubit.dart index 0e4903b..74bc3bb 100644 --- a/lib/features/scene/bloc/scene_cubit.dart +++ b/lib/features/scene/bloc/scene_cubit.dart @@ -18,5 +18,5 @@ class SceneCubit extends Cubit { }); } - var scenes = []; + List scenes = []; } diff --git a/lib/features/scene/view/scene_view.dart b/lib/features/scene/view/scene_view.dart index faa8284..b6c0f00 100644 --- a/lib/features/scene/view/scene_view.dart +++ b/lib/features/scene/view/scene_view.dart @@ -1,7 +1,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:gap/gap.dart'; import 'package:syncrow_app/features/scene/bloc/scene_cubit.dart'; -import 'package:syncrow_app/features/scene/view/widgets/scene_view_no_scenes.dart'; +import 'package:syncrow_app/features/shared_widgets/default_container.dart'; +import 'package:syncrow_app/features/shared_widgets/text_widgets/body_medium.dart'; +import 'package:syncrow_app/features/shared_widgets/text_widgets/body_small.dart'; +import 'package:syncrow_app/features/shared_widgets/text_widgets/title_medium.dart'; +import 'package:syncrow_app/utils/resource_manager/assets_manager.dart'; +import 'package:syncrow_app/utils/resource_manager/strings_manager.dart'; class SceneView extends StatelessWidget { const SceneView({super.key}); @@ -12,9 +18,99 @@ class SceneView extends StatelessWidget { create: (BuildContext context) => SceneCubit(), child: BlocBuilder( builder: (context, state) { - return state is SceneLoading - ? const Center(child: CircularProgressIndicator()) - : const SceneViewNoScenes(); + return Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const TitleMedium( + text: StringsManager.routine, + style: TextStyle( + fontSize: 32, + fontWeight: FontWeight.bold, + ), + ), + const Gap(20), + const BodySmall( + text: StringsManager.tapToRunRoutine, + ), + Row( + children: [ + Expanded( + child: Padding( + padding: const EdgeInsets.symmetric( + vertical: 10, + ), + child: DefaultContainer( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Image.asset( + height: 50, + width: 50, + IconsManager.summerMode, + fit: BoxFit.contain, + ), + const Icon( + Icons.play_circle, + size: 40, + color: Colors.grey, + ) + ], + ), + const BodyMedium( + text: StringsManager.summerMode, + fontWeight: FontWeight.bold, + fontSize: 16, + ) + ], + ), + ), + ), + ), + const Gap(10), + Expanded( + child: Padding( + padding: const EdgeInsets.symmetric( + vertical: 10, + ), + child: DefaultContainer( + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Image.asset( + height: 50, + width: 50, + IconsManager.winterMode, + fit: BoxFit.contain, + ), + const Icon( + Icons.play_circle, + size: 40, + color: Colors.grey, + ) + ], + ), + const BodyMedium( + text: StringsManager.winterMode, + fontWeight: FontWeight.bold, + fontSize: 16, + ) + ], + ), + ), + ), + ), + ], + ) + ], + ); }, ), ); diff --git a/lib/features/shared_widgets/text_widgets/body_medium.dart b/lib/features/shared_widgets/text_widgets/body_medium.dart index ae7fdc7..9301849 100644 --- a/lib/features/shared_widgets/text_widgets/body_medium.dart +++ b/lib/features/shared_widgets/text_widgets/body_medium.dart @@ -10,6 +10,9 @@ class BodyMedium extends StatelessWidget { this.maxLines, this.overflow, this.textAlign, + this.fontSize, + this.fontColor, + this.fontWeight, }); final String text; @@ -18,11 +21,17 @@ class BodyMedium extends StatelessWidget { final TextOverflow? overflow; final TextAlign? textAlign; + final double? fontSize; + + final Color? fontColor; + final FontWeight? fontWeight; @override Widget build(BuildContext context) => CustomText( text, - style: style ?? context.bodyMedium, + style: style ?? + context.bodyMedium.copyWith( + fontSize: fontSize, color: fontColor, fontWeight: fontWeight), // softWrap: true, maxLines: maxLines, // overflow: overflow, diff --git a/lib/my_app.dart b/lib/my_app.dart index e83955e..838deff 100644 --- a/lib/my_app.dart +++ b/lib/my_app.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:syncrow_app/features/auth/bloc/auth_cubit.dart'; -import 'package:syncrow_app/features/navigation/bloc/nav_cubit.dart'; +import 'package:syncrow_app/features/app_layout/bloc/nav_cubit.dart'; import 'package:syncrow_app/utils/resource_manager/color_manager.dart'; import 'package:syncrow_app/utils/resource_manager/theme_manager.dart'; @@ -31,7 +31,7 @@ class MyApp extends StatelessWidget { onGenerateRoute: router.Router.generateRoute, initialRoute: Routes.splash, themeMode: ThemeMode.system, - theme: myTheme, + theme: ThemeManager.selectTheme(), supportedLocales: const [ Locale('en', ''), // English, no country code Locale('ar', ''), // Arabic, no country code diff --git a/lib/navigation/router.dart b/lib/navigation/router.dart index 0836b18..3f4ad07 100644 --- a/lib/navigation/router.dart +++ b/lib/navigation/router.dart @@ -3,7 +3,7 @@ import 'package:syncrow_app/features/auth/view/auth_view.dart'; import 'package:syncrow_app/features/dashboard/view/dashboard_view.dart'; import 'package:syncrow_app/features/devices/view/devices_view.dart'; import 'package:syncrow_app/features/layout/view/layout_view.dart'; -import 'package:syncrow_app/features/navigation/view/navigation_view.dart'; +import 'package:syncrow_app/features/app_layout/view/app_layout.dart'; import 'package:syncrow_app/features/profile/view/profile_view.dart'; import 'package:syncrow_app/features/scene/view/scene_view.dart'; import 'package:syncrow_app/features/splash/view/splash_view.dart'; @@ -43,7 +43,7 @@ class Router { case Routes.homeRoute: return MaterialPageRoute( - builder: (_) => const NavigationView(), settings: settings); + builder: (_) => const AppLayout(), settings: settings); default: return MaterialPageRoute( diff --git a/lib/utils/resource_manager/assets_manager.dart b/lib/utils/resource_manager/assets_manager.dart index 217d4ed..e49d235 100644 --- a/lib/utils/resource_manager/assets_manager.dart +++ b/lib/utils/resource_manager/assets_manager.dart @@ -41,9 +41,7 @@ abstract class IconsManager { static const String doorLock = '$base/Door Lock.svg'; static const String gateway = '$base/Gateway.svg'; static const String light = '$base/Light.svg'; + static const String summerMode = '$base/Hot 1.jpg'; + static const String winterMode = '$base/Winter 1.jpg'; static const String screen = '$base/Screen.svg'; } - -abstract class VideosManager { - // static const String registrationVideo = 'assets/videos/video.mp4'; -} diff --git a/lib/utils/resource_manager/color_manager.dart b/lib/utils/resource_manager/color_manager.dart index f4d2977..3f66b50 100644 --- a/lib/utils/resource_manager/color_manager.dart +++ b/lib/utils/resource_manager/color_manager.dart @@ -2,8 +2,10 @@ import 'package:flutter/material.dart'; abstract class ColorsManager { static const Color textPrimaryColor = Color(0xFF5D5D5D); - static const Color primaryColor = Color(0xFF023dfe); - static const Color secondaryColor = Colors.white; + static const Color primaryColor = Color(0xFF0030CB); + static const Color onPrimaryColor = Colors.white; + static const Color secondaryColor = Color(0xFF023DFE); + static const Color onSecondaryColor = Color(0xFF023DFE); static const Color primaryTextColor = Colors.black; static const Color greyColor = Color(0xFFd9d9d9); diff --git a/lib/utils/resource_manager/strings_manager.dart b/lib/utils/resource_manager/strings_manager.dart index 539a924..40512bb 100644 --- a/lib/utils/resource_manager/strings_manager.dart +++ b/lib/utils/resource_manager/strings_manager.dart @@ -6,6 +6,8 @@ class StringsManager { static const dashboard = 'Dashboard'; static const devices = 'Devices'; + static const routine = 'Routines'; + static const tapToRunRoutine = 'Tap to run routine'; static const wizard = 'Wizard'; static const active = 'Active'; static const current = 'Current'; @@ -17,5 +19,7 @@ class StringsManager { static const emissions = 'Emissions'; static const reductions = 'Reductions'; static const winter = 'Winter'; + static const winterMode = 'Winter Mode'; static const summer = 'Summer'; + static const summerMode = 'Summer Mode'; } diff --git a/lib/utils/resource_manager/theme_manager.dart b/lib/utils/resource_manager/theme_manager.dart index 0a84eee..c028314 100644 --- a/lib/utils/resource_manager/theme_manager.dart +++ b/lib/utils/resource_manager/theme_manager.dart @@ -3,154 +3,336 @@ import 'package:flutter/material.dart'; import 'color_manager.dart'; import 'font_manager.dart'; -ThemeData myTheme = ThemeData( - ///main colors - primaryColor: ColorsManager.primaryColor, - // colorScheme: ColorsManager.lightColorScheme, - scaffoldBackgroundColor: Colors.white, +abstract class ThemeManager { + static bool isDarkTheme = false; - ///text theme - textTheme: const TextTheme( - ///display - displayLarge: TextStyle( - fontFamily: FontsManager.fontFamily, - fontSize: FontSize.s35, - fontWeight: FontsManager.regular, - color: ColorsManager.textPrimaryColor, + static ThemeData selectTheme() => isDarkTheme ? darkTheme : lightTheme; + static ThemeData lightTheme = ThemeData( + ///main colors + primaryColor: ColorsManager.primaryColor, + colorScheme: const ColorScheme( + background: ColorsManager.backgroundColor, + brightness: Brightness.light, + primary: ColorsManager.primaryColor, + onPrimary: ColorsManager.onPrimaryColor, + secondary: ColorsManager.secondaryColor, + onSecondary: ColorsManager.onSecondaryColor, + error: Colors.red, + onError: Colors.white, + onBackground: ColorsManager.textPrimaryColor, + surface: Colors.white, + onSurface: ColorsManager.textPrimaryColor, ), - displayMedium: TextStyle( - fontFamily: FontsManager.fontFamily, - fontSize: FontSize.s20, - fontWeight: FontsManager.regular, - color: ColorsManager.textPrimaryColor, - ), - displaySmall: TextStyle( - fontFamily: FontsManager.fontFamily, - fontSize: FontSize.s16, - fontWeight: FontsManager.regular, - color: ColorsManager.textPrimaryColor, + scaffoldBackgroundColor: Colors.white, + + ///text theme + textTheme: const TextTheme( + ///display + displayLarge: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s35, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + displayMedium: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s20, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + displaySmall: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s16, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + + ///title + titleLarge: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s48, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + titleMedium: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s30, + fontWeight: FontsManager.bold, + color: ColorsManager.textPrimaryColor, + ), + titleSmall: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s25, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + + ///body + bodyLarge: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s18, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + bodyMedium: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s14, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + bodySmall: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s12, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + + labelLarge: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s18, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + labelMedium: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s16, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + labelSmall: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s14, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), ), - ///title - titleLarge: TextStyle( - fontFamily: FontsManager.fontFamily, - fontSize: FontSize.s48, - fontWeight: FontsManager.regular, - color: ColorsManager.textPrimaryColor, - ), - titleMedium: TextStyle( - fontFamily: FontsManager.fontFamily, - fontSize: FontSize.s30, - fontWeight: FontsManager.bold, - color: ColorsManager.textPrimaryColor, - ), - titleSmall: TextStyle( - fontFamily: FontsManager.fontFamily, - fontSize: FontSize.s25, - fontWeight: FontsManager.regular, - color: ColorsManager.textPrimaryColor, + ///button theme + // buttonTheme: ButtonThemeData( + // buttonColor: ColorsManager.primaryLightColor, + // padding: const EdgeInsets.symmetric(horizontal: AppPadding.p8), + // textTheme: ButtonTextTheme.primary, + // hoverColor: ColorsManager.primaryDarkColor, + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(AppRadius.r4), + // ),), + // + // textButtonTheme: TextButtonThemeData( + // style: ButtonStyle( + // backgroundColor: + // MaterialStateProperty.all(ColorsManager.primaryLightColor), + // padding: MaterialStateProperty.all( + // const EdgeInsets.all(AppPadding.p8),), + // textStyle: MaterialStateProperty.all( + // const TextStyle( + // fontFamily: FontsManager.fontFamily, + // fontSize: FontSize.s16, + // fontWeight: FontsManager.regular, + // color: ColorsManager.onPrimaryLightColor, + // ), + // ), + // // shape: MaterialStateProperty.all( + // // RoundedRectangleBorder( + // // borderRadius: BorderRadius.circular(AppRadius.r4), + // // side: const BorderSide(color: Colors.grey), + // // ), + // // ), + // ), + // ), + + ///input decoration theme + inputDecorationTheme: const InputDecorationTheme( + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(8)), + ), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide(color: Colors.grey), + borderRadius: BorderRadius.all(Radius.circular(8)), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide(color: ColorsManager.primaryColor), + borderRadius: BorderRadius.all(Radius.circular(8)), + ), + labelStyle: TextStyle( + fontFamily: FontsManager.fontFamily, + color: Colors.grey, + fontSize: FontSize.s16, + fontWeight: FontsManager.regular, + ), ), - ///body - bodyLarge: TextStyle( - fontFamily: FontsManager.fontFamily, - fontSize: FontSize.s18, - fontWeight: FontsManager.regular, - color: ColorsManager.textPrimaryColor, + ///card theme + //TODO edit card theme + cardTheme: const CardTheme( + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(20)), + ), ), - bodyMedium: TextStyle( - fontFamily: FontsManager.fontFamily, - fontSize: FontSize.s14, - fontWeight: FontsManager.regular, - color: ColorsManager.textPrimaryColor, + ); + + //TODO implement dark theme + static ThemeData darkTheme = ThemeData( + ///main colors + primaryColor: ColorsManager.primaryColor, + colorScheme: const ColorScheme( + background: ColorsManager.backgroundColor, + brightness: Brightness.light, + primary: ColorsManager.primaryColor, + onPrimary: ColorsManager.onPrimaryColor, + secondary: ColorsManager.secondaryColor, + onSecondary: ColorsManager.onSecondaryColor, + error: Colors.red, + onError: Colors.white, + onBackground: ColorsManager.textPrimaryColor, + surface: Colors.white, + onSurface: ColorsManager.textPrimaryColor, ), - bodySmall: TextStyle( - fontFamily: FontsManager.fontFamily, - fontSize: FontSize.s12, - fontWeight: FontsManager.regular, - color: ColorsManager.textPrimaryColor, + scaffoldBackgroundColor: Colors.white, + + ///text theme + textTheme: const TextTheme( + ///display + displayLarge: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s35, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + displayMedium: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s20, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + displaySmall: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s16, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + + ///title + titleLarge: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s48, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + titleMedium: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s30, + fontWeight: FontsManager.bold, + color: ColorsManager.textPrimaryColor, + ), + titleSmall: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s25, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + + ///body + bodyLarge: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s18, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + bodyMedium: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s14, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + bodySmall: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s12, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + + labelLarge: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s18, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + labelMedium: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s16, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), + labelSmall: TextStyle( + fontFamily: FontsManager.fontFamily, + fontSize: FontSize.s14, + fontWeight: FontsManager.regular, + color: ColorsManager.textPrimaryColor, + ), ), - labelLarge: TextStyle( - fontFamily: FontsManager.fontFamily, - fontSize: FontSize.s18, - fontWeight: FontsManager.regular, - color: ColorsManager.textPrimaryColor, - ), - labelMedium: TextStyle( - fontFamily: FontsManager.fontFamily, - fontSize: FontSize.s16, - fontWeight: FontsManager.regular, - color: ColorsManager.textPrimaryColor, - ), - labelSmall: TextStyle( - fontFamily: FontsManager.fontFamily, - fontSize: FontSize.s14, - fontWeight: FontsManager.regular, - color: ColorsManager.textPrimaryColor, - ), - ), + ///button theme + // buttonTheme: ButtonThemeData( + // buttonColor: ColorsManager.primaryLightColor, + // padding: const EdgeInsets.symmetric(horizontal: AppPadding.p8), + // textTheme: ButtonTextTheme.primary, + // hoverColor: ColorsManager.primaryDarkColor, + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(AppRadius.r4), + // ),), + // + // textButtonTheme: TextButtonThemeData( + // style: ButtonStyle( + // backgroundColor: + // MaterialStateProperty.all(ColorsManager.primaryLightColor), + // padding: MaterialStateProperty.all( + // const EdgeInsets.all(AppPadding.p8),), + // textStyle: MaterialStateProperty.all( + // const TextStyle( + // fontFamily: FontsManager.fontFamily, + // fontSize: FontSize.s16, + // fontWeight: FontsManager.regular, + // color: ColorsManager.onPrimaryLightColor, + // ), + // ), + // // shape: MaterialStateProperty.all( + // // RoundedRectangleBorder( + // // borderRadius: BorderRadius.circular(AppRadius.r4), + // // side: const BorderSide(color: Colors.grey), + // // ), + // // ), + // ), + // ), - ///button theme - // buttonTheme: ButtonThemeData( - // buttonColor: ColorsManager.primaryLightColor, - // padding: const EdgeInsets.symmetric(horizontal: AppPadding.p8), - // textTheme: ButtonTextTheme.primary, - // hoverColor: ColorsManager.primaryDarkColor, - // shape: RoundedRectangleBorder( - // borderRadius: BorderRadius.circular(AppRadius.r4), - // ),), - // - // textButtonTheme: TextButtonThemeData( - // style: ButtonStyle( - // backgroundColor: - // MaterialStateProperty.all(ColorsManager.primaryLightColor), - // padding: MaterialStateProperty.all( - // const EdgeInsets.all(AppPadding.p8),), - // textStyle: MaterialStateProperty.all( - // const TextStyle( - // fontFamily: FontsManager.fontFamily, - // fontSize: FontSize.s16, - // fontWeight: FontsManager.regular, - // color: ColorsManager.onPrimaryLightColor, - // ), - // ), - // // shape: MaterialStateProperty.all( - // // RoundedRectangleBorder( - // // borderRadius: BorderRadius.circular(AppRadius.r4), - // // side: const BorderSide(color: Colors.grey), - // // ), - // // ), - // ), - // ), + ///input decoration theme + inputDecorationTheme: const InputDecorationTheme( + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(8)), + ), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide(color: Colors.grey), + borderRadius: BorderRadius.all(Radius.circular(8)), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide(color: ColorsManager.primaryColor), + borderRadius: BorderRadius.all(Radius.circular(8)), + ), + labelStyle: TextStyle( + fontFamily: FontsManager.fontFamily, + color: Colors.grey, + fontSize: FontSize.s16, + fontWeight: FontsManager.regular, + ), + ), - ///input decoration theme - inputDecorationTheme: const InputDecorationTheme( - border: OutlineInputBorder( - borderRadius: BorderRadius.all(Radius.circular(8)), + ///card theme + //TODO edit card theme + cardTheme: const CardTheme( + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(20)), + ), ), - enabledBorder: OutlineInputBorder( - borderSide: BorderSide(color: Colors.grey), - borderRadius: BorderRadius.all(Radius.circular(8)), - ), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide(color: ColorsManager.primaryColor), - borderRadius: BorderRadius.all(Radius.circular(8)), - ), - labelStyle: TextStyle( - fontFamily: FontsManager.fontFamily, - color: Colors.grey, - fontSize: FontSize.s16, - fontWeight: FontsManager.regular, - ), - ), - - ///card theme - //TODO edit card theme - cardTheme: const CardTheme( - elevation: 0, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.all(Radius.circular(8)), - ), - ), -); + ); +}