From d0535791734094d587a257ba25f9f88e72d7b1d1 Mon Sep 17 00:00:00 2001 From: MohammadTaha Basiri Date: Thu, 23 Dec 2021 12:00:16 +0330 Subject: [PATCH] D1APP-30 settings page (static) + system chrome --- .../images/categories/business-dark.svg | 15 ++ .../images/categories/business-light.svg | 15 ++ lib/assets/images/categories/business.png | Bin 7836 -> 0 bytes .../images/categories/economic-dark.svg | 11 ++ .../images/categories/economic-light.svg | 11 ++ lib/assets/images/categories/economic.png | Bin 6727 -> 0 bytes .../images/categories/enviromental-dark.svg | 33 +++++ .../images/categories/enviromental-light.svg | 33 +++++ lib/assets/images/categories/enviromental.png | Bin 4860 -> 0 bytes .../images/categories/political-dark.svg | 8 + .../images/categories/political-light.svg | 8 + lib/assets/images/categories/political.png | Bin 5414 -> 0 bytes lib/assets/images/categories/social-dark.svg | 20 +++ lib/assets/images/categories/social-light.svg | 20 +++ lib/assets/images/categories/social.png | Bin 7312 -> 0 bytes lib/assets/images/categories/tech-dark.svg | 18 +++ lib/assets/images/categories/tech-light.svg | 18 +++ lib/assets/images/categories/tech.png | Bin 4720 -> 0 bytes lib/assets/images/logos/logo-h-t.png | Bin 47020 -> 0 bytes .../images/logos/logo-horizontal-dark.svg | 44 ++++++ .../images/logos/logo-horizontal-light.svg | 47 ++++++ lib/assets/images/logos/logo-v-t.png | Bin 54093 -> 0 bytes .../images/logos/logo-vertical-dark.svg | 44 ++++++ .../images/logos/logo-vertical-light.svg | 47 ++++++ lib/assets/images/themes/dark-theme.svg | 6 + lib/assets/images/themes/light-theme.svg | 6 + lib/config/design_config.dart | 22 +-- lib/constants/assets.dart | 40 +++-- lib/main.dart | 45 +++--- lib/models/settings_data.dart | 27 ++++ .../profile/edit_profile/edit_profile.dart | 88 +++++------ lib/pages/home/profile/profile.dart | 9 +- lib/pages/home/profile/settings/settings.dart | 117 ++++++++++++++- .../home/profile/settings/settings_state.dart | 73 +++++++++ lib/pages/home/profile/widgets/menu_item.dart | 9 ++ .../home/radar/widgets/category_item.dart | 5 +- lib/pages/splash/splash.dart | 42 ++++-- lib/providers/core_provider.dart | 2 + lib/providers/theme_provider.dart | 9 +- lib/routes/route_generator.dart | 6 +- lib/services/app_initalizer.dart | 37 +++++ .../request.dart} | 4 +- lib/services/network/request_helper.dart | 1 + lib/services/storage/storage.dart | 40 +++++ lib/utils/actions_sheet.dart | 4 +- lib/utils/date_time.dart | 8 + lib/widgets/didvan/app_bar.dart | 1 - lib/widgets/didvan/scaffold.dart | 45 ++---- lib/widgets/loading_indicators.dart | 1 + lib/widgets/logos/didvan_horizontal_logo.dart | 3 +- lib/widgets/logos/didvan_vertical_logo.dart | 3 +- lib/widgets/state_handler.dart | 48 ++++++ pubspec.lock | 140 ++++++++++++++++++ pubspec.yaml | 31 ++-- 54 files changed, 1101 insertions(+), 163 deletions(-) create mode 100644 lib/assets/images/categories/business-dark.svg create mode 100644 lib/assets/images/categories/business-light.svg delete mode 100644 lib/assets/images/categories/business.png create mode 100644 lib/assets/images/categories/economic-dark.svg create mode 100644 lib/assets/images/categories/economic-light.svg delete mode 100644 lib/assets/images/categories/economic.png create mode 100644 lib/assets/images/categories/enviromental-dark.svg create mode 100644 lib/assets/images/categories/enviromental-light.svg delete mode 100644 lib/assets/images/categories/enviromental.png create mode 100644 lib/assets/images/categories/political-dark.svg create mode 100644 lib/assets/images/categories/political-light.svg delete mode 100644 lib/assets/images/categories/political.png create mode 100644 lib/assets/images/categories/social-dark.svg create mode 100644 lib/assets/images/categories/social-light.svg delete mode 100644 lib/assets/images/categories/social.png create mode 100644 lib/assets/images/categories/tech-dark.svg create mode 100644 lib/assets/images/categories/tech-light.svg delete mode 100644 lib/assets/images/categories/tech.png delete mode 100644 lib/assets/images/logos/logo-h-t.png create mode 100644 lib/assets/images/logos/logo-horizontal-dark.svg create mode 100644 lib/assets/images/logos/logo-horizontal-light.svg delete mode 100644 lib/assets/images/logos/logo-v-t.png create mode 100644 lib/assets/images/logos/logo-vertical-dark.svg create mode 100644 lib/assets/images/logos/logo-vertical-light.svg create mode 100644 lib/assets/images/themes/dark-theme.svg create mode 100644 lib/assets/images/themes/light-theme.svg create mode 100644 lib/models/settings_data.dart create mode 100644 lib/pages/home/profile/settings/settings_state.dart create mode 100644 lib/services/app_initalizer.dart rename lib/services/{request_handler.dart => network/request.dart} (99%) create mode 100644 lib/services/network/request_helper.dart create mode 100644 lib/services/storage/storage.dart create mode 100644 lib/utils/date_time.dart create mode 100644 lib/widgets/loading_indicators.dart create mode 100644 lib/widgets/state_handler.dart diff --git a/lib/assets/images/categories/business-dark.svg b/lib/assets/images/categories/business-dark.svg new file mode 100644 index 0000000..9e09cda --- /dev/null +++ b/lib/assets/images/categories/business-dark.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/lib/assets/images/categories/business-light.svg b/lib/assets/images/categories/business-light.svg new file mode 100644 index 0000000..4b64c42 --- /dev/null +++ b/lib/assets/images/categories/business-light.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/lib/assets/images/categories/business.png b/lib/assets/images/categories/business.png deleted file mode 100644 index 0470a949a66364c49727f37b6d6b09cbf0e92255..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7836 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 + + + + + + + + + + diff --git a/lib/assets/images/categories/economic-light.svg b/lib/assets/images/categories/economic-light.svg new file mode 100644 index 0000000..0513930 --- /dev/null +++ b/lib/assets/images/categories/economic-light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/lib/assets/images/categories/economic.png b/lib/assets/images/categories/economic.png deleted file mode 100644 index 44f67fbaf9639987013620a177b27eee2ec90ff8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6727 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 diff --git a/lib/assets/images/categories/enviromental-dark.svg b/lib/assets/images/categories/enviromental-dark.svg new file mode 100644 index 0000000..b59ba84 --- /dev/null +++ b/lib/assets/images/categories/enviromental-dark.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/assets/images/categories/enviromental-light.svg b/lib/assets/images/categories/enviromental-light.svg new file mode 100644 index 0000000..ce38dd6 --- /dev/null +++ b/lib/assets/images/categories/enviromental-light.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/assets/images/categories/enviromental.png b/lib/assets/images/categories/enviromental.png deleted file mode 100644 index f56f648343fb7bc8fcf798a274e8fbb2a52593fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4860 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 i@ + + + + + + + diff --git a/lib/assets/images/categories/political-light.svg b/lib/assets/images/categories/political-light.svg new file mode 100644 index 0000000..c8f71b4 --- /dev/null +++ b/lib/assets/images/categories/political-light.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/lib/assets/images/categories/political.png b/lib/assets/images/categories/political.png deleted file mode 100644 index 06ea42a7fe8adea813f46e6f7e3fc8c955cdb0c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5414 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 + + + + + + + + + + + + + + + + + + + diff --git a/lib/assets/images/categories/social-light.svg b/lib/assets/images/categories/social-light.svg new file mode 100644 index 0000000..2b28dac --- /dev/null +++ b/lib/assets/images/categories/social-light.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/lib/assets/images/categories/social.png b/lib/assets/images/categories/social.png deleted file mode 100644 index 2b4e4ea410fc7c3e43b7968ee83901fa5d58ff9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7312 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
+ + + + + + + + + + + + + + + + + diff --git a/lib/assets/images/categories/tech-light.svg b/lib/assets/images/categories/tech-light.svg new file mode 100644 index 0000000..ec8743a --- /dev/null +++ b/lib/assets/images/categories/tech-light.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/lib/assets/images/categories/tech.png b/lib/assets/images/categories/tech.png deleted file mode 100644 index 76bdc49bde27acca1827557bca33e79642f2a535..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4720 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
()taS7?6+jpZ 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 QD8Nuv(o(FGw+j3J0JzCh(*OVf diff --git a/lib/assets/images/logos/logo-horizontal-dark.svg b/lib/assets/images/logos/logo-horizontal-dark.svg new file mode 100644 index 0000000..ab9db91 --- /dev/null +++ b/lib/assets/images/logos/logo-horizontal-dark.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/assets/images/logos/logo-horizontal-light.svg b/lib/assets/images/logos/logo-horizontal-light.svg new file mode 100644 index 0000000..04e066b --- /dev/null +++ b/lib/assets/images/logos/logo-horizontal-light.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/assets/images/logos/logo-v-t.png b/lib/assets/images/logos/logo-v-t.png deleted file mode 100644 index 9d27213f032320cd7a2d39fb9e36399a7ca2ade0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54093 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 FV1lpe#*Y91 diff --git a/lib/assets/images/logos/logo-vertical-dark.svg b/lib/assets/images/logos/logo-vertical-dark.svg new file mode 100644 index 0000000..0cf46df --- /dev/null +++ b/lib/assets/images/logos/logo-vertical-dark.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/assets/images/logos/logo-vertical-light.svg b/lib/assets/images/logos/logo-vertical-light.svg new file mode 100644 index 0000000..0f4c57f --- /dev/null +++ b/lib/assets/images/logos/logo-vertical-light.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/assets/images/themes/dark-theme.svg b/lib/assets/images/themes/dark-theme.svg new file mode 100644 index 0000000..ce96210 --- /dev/null +++ b/lib/assets/images/themes/dark-theme.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/lib/assets/images/themes/light-theme.svg b/lib/assets/images/themes/light-theme.svg new file mode 100644 index 0000000..93ac8c4 --- /dev/null +++ b/lib/assets/images/themes/light-theme.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/lib/config/design_config.dart b/lib/config/design_config.dart index 3b009c9..3c74136 100644 --- a/lib/config/design_config.dart +++ b/lib/config/design_config.dart @@ -15,10 +15,10 @@ class DesignConfig { Radius.circular(16), ); - static final Border cardBorder = Border.all( - color: Theme.of(context).colorScheme.cardBorder, - width: 0.25, - ); + static Border get cardBorder => Border.all( + color: Theme.of(context).colorScheme.cardBorder, + width: 0.5, + ); static List get defaultShadow => [ BoxShadow( @@ -28,6 +28,8 @@ class DesignConfig { ) ]; + static Brightness get brightness => Theme.of(context).brightness; + static const Duration lowAnimationDuration = Duration(milliseconds: 300); static const Duration mediumAnimationDuration = Duration(milliseconds: 600); @@ -37,12 +39,12 @@ class DesignConfig { ? Brightness.light : Brightness.dark, statusBarColor: Colors.transparent, - systemNavigationBarColor: Theme.of(context).colorScheme.surface, - systemNavigationBarDividerColor: Colors.transparent, - systemNavigationBarIconBrightness: - Theme.of(context).colorScheme.brightness == Brightness.dark - ? Brightness.light - : Brightness.dark, + // systemNavigationBarColor: Theme.of(context).colorScheme.surface, + // systemNavigationBarDividerColor: Colors.transparent, + // systemNavigationBarIconBrightness: + // Theme.of(context).colorScheme.brightness == Brightness.dark + // ? Brightness.light + // : Brightness.dark, ); } diff --git a/lib/constants/assets.dart b/lib/constants/assets.dart index 59af3fe..e22b26f 100644 --- a/lib/constants/assets.dart +++ b/lib/constants/assets.dart @@ -1,24 +1,36 @@ +import 'package:didvan/config/design_config.dart'; +import 'package:flutter/cupertino.dart'; + class Assets { static const String _basePath = 'lib/assets'; static const String _baseImagesPath = _basePath + '/images'; + static const String _baseThemesPath = _basePath + '/images/themes'; static const String _baseAnimationsPath = _basePath + '/animations'; - static const String verticalLogoWithText = - _baseImagesPath + '/logos/logo-v-t.png'; - static const String horizontalLogoWithText = - _baseImagesPath + '/logos/logo-h-t.png'; + static String get verticalLogoWithText => + _baseImagesPath + '/logos/logo-vertical-$_themeSuffix.svg'; + static String get horizontalLogoWithText => + _baseImagesPath + '/logos/logo-horizontal-$_themeSuffix.svg'; static const String logoLoadingAnimation = _baseAnimationsPath + '/indicator.riv'; - static const businessCategoryIcon = - _baseImagesPath + '/categories/business.png'; - static const economicCategoryIcon = - _baseImagesPath + '/categories/economic.png'; - static const enviromentalCategoryIcon = - _baseImagesPath + '/categories/enviromental.png'; - static const politicalCategoryIcon = - _baseImagesPath + '/categories/political.png'; - static const socialCategoryIcon = _baseImagesPath + '/categories/social.png'; - static const techCategoryIcon = _baseImagesPath + '/categories/tech.png'; + static String get businessCategoryIcon => + _baseImagesPath + '/categories/business-$_themeSuffix.svg'; + static String get economicCategoryIcon => + _baseImagesPath + '/categories/economic-$_themeSuffix.svg'; + static String get enviromentalCategoryIcon => + _baseImagesPath + '/categories/enviromental-$_themeSuffix.svg'; + static String get politicalCategoryIcon => + _baseImagesPath + '/categories/political-$_themeSuffix.svg'; + static String get socialCategoryIcon => + _baseImagesPath + '/categories/social-$_themeSuffix.svg'; + static String get techCategoryIcon => + _baseImagesPath + '/categories/tech-$_themeSuffix.svg'; + + static const String lightTheme = _baseThemesPath + '/light-theme.svg'; + static const String darkTheme = _baseThemesPath + '/dark-theme.svg'; + + static String get _themeSuffix => + DesignConfig.brightness == Brightness.dark ? 'dark' : 'light'; } diff --git a/lib/main.dart b/lib/main.dart index 878f462..87129d8 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,5 @@ -import 'package:didvan/config/design_config.dart'; import 'package:didvan/config/theme_data.dart'; +import 'package:didvan/providers/theme_provider.dart'; import 'package:didvan/providers/user_provider.dart'; import 'package:didvan/routes/route_generator.dart'; import 'package:flutter/material.dart'; @@ -16,28 +16,33 @@ class Didvan extends StatelessWidget { Widget build(BuildContext context) { return MultiProvider( providers: [ - ChangeNotifierProvider( + ChangeNotifierProvider( create: (context) => UserProvider(), ), + ChangeNotifierProvider( + create: (context) => ThemeProvider(), + ), ], - child: MaterialApp( - debugShowCheckedModeBanner: false, - title: 'Didvan', - theme: LightThemeConfig.themeData, - darkTheme: DarkThemeConfig.themeData, - color: LightThemeConfig.themeData.primaryColor, - themeMode: ThemeMode.light, - onGenerateRoute: (settings) => RouteGenerator.generateRoute(settings), - initialRoute: '/', - localizationsDelegates: const [ - GlobalCupertinoLocalizations.delegate, - GlobalMaterialLocalizations.delegate, - GlobalWidgetsLocalizations.delegate, - ], - supportedLocales: const [ - Locale("fa", "IR"), - ], - locale: const Locale("fa", "IR"), + child: Consumer( + builder: (context, themeProvider, child) => MaterialApp( + debugShowCheckedModeBanner: false, + title: 'Didvan', + theme: LightThemeConfig.themeData, + darkTheme: DarkThemeConfig.themeData, + color: LightThemeConfig.themeData.primaryColor, + themeMode: themeProvider.themeMode, + onGenerateRoute: (settings) => RouteGenerator.generateRoute(settings), + initialRoute: '/', + localizationsDelegates: const [ + GlobalCupertinoLocalizations.delegate, + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + ], + supportedLocales: const [ + Locale("fa", "IR"), + ], + locale: const Locale("fa", "IR"), + ), ), ); } diff --git a/lib/models/settings_data.dart b/lib/models/settings_data.dart new file mode 100644 index 0000000..e8404a9 --- /dev/null +++ b/lib/models/settings_data.dart @@ -0,0 +1,27 @@ +class SettingsData { + final String brightness; + final List notificationTimeRange; + final String fontFamily; + final double fontSizeScale; + + SettingsData( + this.brightness, + this.notificationTimeRange, + this.fontFamily, + this.fontSizeScale, + ); + + factory SettingsData.fromJson(Map json) => SettingsData( + json['brightness'], + json['notificationTimeRange'], + json['fontFamily'], + json['fontSizeScale'], + ); + + Map toJson() => { + 'brightness': brightness, + 'notificationTimeRange': notificationTimeRange, + 'fontFamily': fontFamily, + 'fontSizeScale': fontSizeScale, + }; +} diff --git a/lib/pages/home/profile/edit_profile/edit_profile.dart b/lib/pages/home/profile/edit_profile/edit_profile.dart index 1bd7628..c459622 100644 --- a/lib/pages/home/profile/edit_profile/edit_profile.dart +++ b/lib/pages/home/profile/edit_profile/edit_profile.dart @@ -16,55 +16,47 @@ class EditProfile extends StatelessWidget { return DidvanScaffold( appBarData: AppBarData(title: 'ویرایش پروفایل'), slivers: [ - const SliverPadding( - padding: EdgeInsets.only(top: 16), - sliver: SliverToBoxAdapter( - child: ProfilePhoto(), - ), - ), - SliverPadding( - padding: const EdgeInsets.all(16), - sliver: SliverToBoxAdapter( - child: DidvanCard( - child: Column( - children: [ - DidvanTextField( - title: 'نام کاربری', - hintText: 'انتخاب نام کاربری (اختیاری)', - onChanged: (value) { - //TODO: Needs implementation - }, - ), - const SizedBox(height: 16), - DidvanTextField( - title: 'ایمیل', - hintText: 'مثال: example@email.com', - onChanged: (value) { - //TODO: Meeds implementaion - }, - ), - const SizedBox(height: 16), - const DidvanTextField( - title: 'موبایل', - enabled: false, - hintText: '09123456789', //TODO: Needs api - ), - const SizedBox(height: 16), - DidvanSwitch( - value: true, //TODO: Needs api - title: 'ورود با اثر انگشت', - onChanged: (value) => { - //TODO: Needs implementaion - }, - ), - const DidvanDivider(), - MenuItem( - title: 'تغییر رمز عبور', - onTap: () {}, - ), - ], + const SizedBox(height: 16), + const ProfilePhoto(), + const SizedBox(height: 16), + DidvanCard( + child: Column( + children: [ + DidvanTextField( + title: 'نام کاربری', + hintText: 'انتخاب نام کاربری (اختیاری)', + onChanged: (value) { + //TODO: Needs implementation + }, ), - ), + const SizedBox(height: 16), + DidvanTextField( + title: 'ایمیل', + hintText: 'مثال: example@email.com', + onChanged: (value) { + //TODO: Meeds implementaion + }, + ), + const SizedBox(height: 16), + const DidvanTextField( + title: 'موبایل', + enabled: false, + hintText: '09123456789', //TODO: Needs api + ), + const SizedBox(height: 16), + DidvanSwitch( + value: true, //TODO: Needs api + title: 'ورود با اثر انگشت', + onChanged: (value) => { + //TODO: Needs implementaion + }, + ), + const DidvanDivider(), + MenuItem( + title: 'تغییر رمز عبور', + onTap: () {}, + ), + ], ), ), ], diff --git a/lib/pages/home/profile/profile.dart b/lib/pages/home/profile/profile.dart index d6fc48c..805099b 100644 --- a/lib/pages/home/profile/profile.dart +++ b/lib/pages/home/profile/profile.dart @@ -1,12 +1,14 @@ import 'package:didvan/constants/app_icons.dart'; import 'package:didvan/pages/home/profile/widgets/menu_item.dart'; import 'package:didvan/pages/home/widgets/logo_app_bar.dart'; +import 'package:didvan/providers/theme_provider.dart'; import 'package:didvan/routes/routes.dart'; import 'package:didvan/widgets/didvan/card.dart'; import 'package:didvan/widgets/didvan/divider.dart'; import 'package:didvan/widgets/didvan/text.dart'; import 'package:didvan/widgets/item_title.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; class Profile extends StatelessWidget { const Profile({Key? key}) : super(key: key); @@ -18,7 +20,12 @@ class Profile extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - const LogoAppBar(hasExtraPadding: false), + Consumer( + builder: (context, themeProvider, child) => LogoAppBar( + hasExtraPadding: false, + key: UniqueKey(), + ), + ), const SizedBox(height: 16), DidvanCard( child: Column( diff --git a/lib/pages/home/profile/settings/settings.dart b/lib/pages/home/profile/settings/settings.dart index e445f8a..c73bf6b 100644 --- a/lib/pages/home/profile/settings/settings.dart +++ b/lib/pages/home/profile/settings/settings.dart @@ -1,23 +1,124 @@ +import 'package:day_night_time_picker/lib/daynight_timepicker.dart'; +import 'package:didvan/config/design_config.dart'; +import 'package:didvan/constants/app_icons.dart'; +import 'package:didvan/constants/assets.dart'; import 'package:didvan/models/view/app_bar_data.dart'; +import 'package:didvan/pages/home/profile/settings/settings_state.dart'; import 'package:didvan/pages/home/profile/widgets/menu_item.dart'; +import 'package:didvan/providers/theme_provider.dart'; import 'package:didvan/widgets/didvan/card.dart'; +import 'package:didvan/widgets/didvan/divider.dart'; import 'package:didvan/widgets/didvan/scaffold.dart'; +import 'package:didvan/widgets/didvan/text.dart'; +import 'package:didvan/widgets/item_title.dart'; +import 'package:didvan/widgets/state_handler.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:provider/provider.dart'; class Settings extends StatelessWidget { const Settings({Key? key}) : super(key: key); @override Widget build(BuildContext context) { - return DidvanScaffold( - appBarData: AppBarData(hasBack: true, title: 'تنظیمات'), - slivers: [ - SliverToBoxAdapter( - child: DidvanCard( - child: MenuItem(title: 'زمان دریافت اعلان', onTap: () {}), - ), + return Consumer( + builder: (context, state, child) => StateHandler( + state: context.read(), + builder: (context, state) => DidvanScaffold( + appBarData: AppBarData(hasBack: true, title: 'تنظیمات'), + slivers: [ + DidvanCard( + child: MenuItem( + title: 'زمان دریافت اعلان', + onTap: () => _pickTimeRange(context), + icon: DidvanIcons.notification_regular, + suffix: state.notificationTimeRange[0], + ), + ), + const ItemTitle( + title: 'انتخاب قلم', + icon: DidvanIcons.font_solid, + ), + DidvanCard( + child: Column( + children: [ + MenuItem( + suffix: 'نیاز به پیاده‌سازی', + title: 'فونت برنامه', + onTap: () {}, + ), + const DidvanDivider(), + MenuItem( + suffix: 'نیاز به پیاده‌سازی', + title: 'اندازه متن', + onTap: () {}, + ), + ], + ), + ), + const ItemTitle( + title: 'ظاهر برنامه', + icon: DidvanIcons.theme_solid, + ), + DidvanCard( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + _themeItem(context, state, 'light'), + _themeItem(context, state, 'dark'), + ], + ), + ), + ], ), - ], + ), + ); + } + + Future _pickTimeRange(context) async { + final SettingsState state = context.read(); + Navigator.of(context).push( + showPicker( + context: context, + value: const TimeOfDay(hour: 0, minute: 0), + onChange: (time) { + String hour = time.toString().split(':')[0]; + state.notificationTimeRange = []; + }, + ), + ); + } + + Widget _themeItem( + BuildContext context, SettingsState state, String brightness) { + final bool isDarkTheme = brightness == 'dark'; + return GestureDetector( + onTap: () { + state.brightness = brightness; + if (isDarkTheme && Theme.of(context).brightness == Brightness.dark) { + return; + } else if (!isDarkTheme && + Theme.of(context).brightness == Brightness.light) { + return; + } else { + if (isDarkTheme) { + context.read().themeMode = ThemeMode.dark; + DesignConfig.updateSystemUiOverlayStyle(); + } else { + context.read().themeMode = ThemeMode.light; + DesignConfig.updateSystemUiOverlayStyle(); + } + } + }, + child: Column( + children: [ + SvgPicture.asset(isDarkTheme ? Assets.darkTheme : Assets.lightTheme), + const SizedBox(height: 8), + DidvanText( + isDarkTheme ? 'تیره' : 'روشن', + ), + ], + ), ); } } diff --git a/lib/pages/home/profile/settings/settings_state.dart b/lib/pages/home/profile/settings/settings_state.dart new file mode 100644 index 0000000..0f0e973 --- /dev/null +++ b/lib/pages/home/profile/settings/settings_state.dart @@ -0,0 +1,73 @@ +import 'package:didvan/models/enums.dart'; +import 'package:didvan/providers/core_provider.dart'; +import 'package:didvan/services/storage/storage.dart'; + +class SettingsState extends CoreProvier { + SettingsState() { + getSettingsFromStorage(); + } + + List _notificationTimeRange = []; + String _fontFamily = 'Dana-FA'; + double _fontSizeScale = 1; + String _brightness = 'light'; + + set notificationTimeRange(List value) { + _notificationTimeRange = value; + StorageService.setValue( + key: 'notificationTimeRange', + value: value, + boxName: 'settings', + ); + } + + List get notificationTimeRange => _notificationTimeRange; + + set fontFamily(String value) { + _fontFamily = value; + StorageService.setValue( + key: 'fontFamily', + value: value, + boxName: 'settings', + ); + notifyListeners(); + } + + String get fontFamily => _fontFamily; + + set fontSizeScale(double value) { + _fontSizeScale = value; + StorageService.setValue( + key: 'fontSizeScale', + value: value, + boxName: 'settings', + ); + notifyListeners(); + } + + double get fontSizeScale => _fontSizeScale; + + set brightness(String value) { + _brightness = value; + StorageService.setValue( + key: 'brightness', + value: value, + boxName: 'settings', + ); + notifyListeners(); + } + + String get brightness => _brightness; + + Future getSettingsFromStorage() async { + appState = AppState.busy; + final Map settingsData = await StorageService.getBoxData( + boxName: 'settings', + ); + _notificationTimeRange = settingsData['notificationTimeRange']; + _fontFamily = settingsData['fontFamily']; + _fontSizeScale = settingsData['fontSizeScale']; + _brightness = settingsData['brightness']; + appState = AppState.idle; + } +} diff --git a/lib/pages/home/profile/widgets/menu_item.dart b/lib/pages/home/profile/widgets/menu_item.dart index 5f4e855..f6956a3 100644 --- a/lib/pages/home/profile/widgets/menu_item.dart +++ b/lib/pages/home/profile/widgets/menu_item.dart @@ -33,6 +33,15 @@ class MenuItem extends StatelessWidget { color: color ?? Theme.of(context).colorScheme.title, ), const Spacer(), + if (suffix != null) + DidvanText( + suffix!, + style: Theme.of(context) + .textTheme + .subtitle2! + .copyWith(fontWeight: FontWeight.w400), + color: Theme.of(context).colorScheme.primary, + ), trailing ?? Icon( DidvanIcons.angle_left_regular, diff --git a/lib/pages/home/radar/widgets/category_item.dart b/lib/pages/home/radar/widgets/category_item.dart index bfbdbbb..b9bec99 100644 --- a/lib/pages/home/radar/widgets/category_item.dart +++ b/lib/pages/home/radar/widgets/category_item.dart @@ -3,6 +3,7 @@ import 'package:didvan/config/theme_data.dart'; import 'package:didvan/widgets/animated_visibility.dart'; import 'package:didvan/widgets/didvan/text.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; class CategoryItem extends StatelessWidget { final String title; @@ -45,9 +46,7 @@ class CategoryItem extends StatelessWidget { borderRadius: DesignConfig.mediumBorderRadius, ), padding: const EdgeInsets.all(8), - child: Image.asset( - asset, - ), + child: SvgPicture.asset(asset), ), ), const SizedBox( diff --git a/lib/pages/splash/splash.dart b/lib/pages/splash/splash.dart index 7e2645b..5d7de57 100644 --- a/lib/pages/splash/splash.dart +++ b/lib/pages/splash/splash.dart @@ -1,10 +1,14 @@ import 'package:didvan/config/design_config.dart'; import 'package:didvan/config/theme_data.dart'; import 'package:didvan/main.dart'; +import 'package:didvan/pages/splash/splash_state.dart'; +import 'package:didvan/providers/theme_provider.dart'; import 'package:didvan/routes/routes.dart'; +import 'package:didvan/services/app_initalizer.dart'; import 'package:didvan/widgets/logos/didvan_horizontal_logo.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:provider/provider.dart'; class Splash extends StatefulWidget { const Splash({Key? key}) : super(key: key); @@ -14,31 +18,47 @@ class Splash extends StatefulWidget { } class _SplashState extends State { + bool _isGettingThemeData = true; + @override void initState() { - Future.delayed( - const Duration(seconds: 2), - () { - Navigator.of(context).pushReplacementNamed( - Routes.home, - ); - }, - ); + _initialize(); super.initState(); } + Future _initialize() async { + await AppInitializer.setupServices(); + final ThemeMode themeMode = await AppInitializer.initilizeSettings(); + context.read().themeMode = themeMode; + await Future.delayed( + const Duration(milliseconds: 200), + () => setState(() { + _isGettingThemeData = false; + }), + ); + await Future.delayed(const Duration(seconds: 2)); + Navigator.of(context).pushReplacementNamed(Routes.home); + } + @override Widget build(BuildContext context) { DesignConfig.context = context; + if (_isGettingThemeData) { + return Container( + color: Colors.black, + height: double.infinity, + width: double.infinity, + ); + } return AnnotatedRegion( value: DesignConfig.systemUiOverlayStyle.copyWith( - systemNavigationBarColor: Theme.of(context).colorScheme.focused, - ), + // systemNavigationBarColor: Theme.of(context).colorScheme.focused, + ), child: Scaffold( body: Container( alignment: Alignment.center, padding: const EdgeInsets.all(60), - color: Theme.of(context).colorScheme.focused, + color: Theme.of(context).colorScheme.background, child: const DidvanVerticalLogo(), ), ), diff --git a/lib/providers/core_provider.dart b/lib/providers/core_provider.dart index 3238711..45ef78c 100644 --- a/lib/providers/core_provider.dart +++ b/lib/providers/core_provider.dart @@ -9,5 +9,7 @@ class CoreProvier with ChangeNotifier { notifyListeners(); } + void update() => notifyListeners(); + AppState get appState => _appState; } diff --git a/lib/providers/theme_provider.dart b/lib/providers/theme_provider.dart index 638c1c7..ab095b2 100644 --- a/lib/providers/theme_provider.dart +++ b/lib/providers/theme_provider.dart @@ -2,5 +2,12 @@ import 'package:didvan/providers/core_provider.dart'; import 'package:flutter/material.dart'; class ThemeProvider extends CoreProvier { - late ThemeMode themeMode; + ThemeMode _themeMode = ThemeMode.system; + + set themeMode(ThemeMode value) { + _themeMode = value; + notifyListeners(); + } + + ThemeMode get themeMode => _themeMode; } diff --git a/lib/routes/route_generator.dart b/lib/routes/route_generator.dart index 4fdba0a..7b05f54 100644 --- a/lib/routes/route_generator.dart +++ b/lib/routes/route_generator.dart @@ -4,6 +4,7 @@ import 'package:didvan/pages/home/home.dart'; import 'package:didvan/pages/home/home_state.dart'; import 'package:didvan/pages/home/profile/edit_profile/edit_profile.dart'; import 'package:didvan/pages/home/profile/settings/settings.dart'; +import 'package:didvan/pages/home/profile/settings/settings_state.dart'; import 'package:didvan/pages/splash/splash.dart'; import 'package:didvan/pages/splash/splash_state.dart'; import 'package:didvan/routes/routes.dart'; @@ -40,7 +41,10 @@ class RouteGenerator { ); case Routes.settings: return _createRoute( - const Settings(), + ChangeNotifierProvider( + create: (context) => SettingsState(), + child: const Settings(), + ), ); default: return _errorRoute(); diff --git a/lib/services/app_initalizer.dart b/lib/services/app_initalizer.dart new file mode 100644 index 0000000..ac76df2 --- /dev/null +++ b/lib/services/app_initalizer.dart @@ -0,0 +1,37 @@ +import 'dart:io'; + +import 'package:didvan/models/settings_data.dart'; +import 'package:didvan/services/storage/storage.dart'; +import 'package:flutter/material.dart'; +import 'package:hive/hive.dart'; +import 'package:path_provider/path_provider.dart'; + +class AppInitializer { + static Future setupServices() async { + final Directory appDir = await getApplicationDocumentsDirectory(); + Hive.init(appDir.path); + } + + static Future initilizeSettings() async { + final bool settingsBoxExists = await StorageService.boxExists( + boxName: 'settings', + ); + if (settingsBoxExists) { + final String brightness = + await StorageService.getValue(key: 'brightness', boxName: 'settings'); + return brightness == 'dark' ? ThemeMode.dark : ThemeMode.light; + } else { + final SettingsData settingsData = SettingsData( + 'light', + ['00:00', '23:59'], + 'Dana-FA', + 1, + ); + await StorageService.setBoxData( + data: settingsData.toJson(), + boxName: 'settings', + ); + return ThemeMode.light; + } + } +} diff --git a/lib/services/request_handler.dart b/lib/services/network/request.dart similarity index 99% rename from lib/services/request_handler.dart rename to lib/services/network/request.dart index 462ee4d..fb2c7b7 100644 --- a/lib/services/request_handler.dart +++ b/lib/services/network/request.dart @@ -3,7 +3,7 @@ import 'dart:developer'; import 'dart:io'; import 'package:http/http.dart' as http; -class RequestHandler { +class RequestService { static late String token; String? errorMessage; @@ -18,7 +18,7 @@ class RequestHandler { bool isSuccess = false; - RequestHandler( + RequestService( this.url, { Map? requestHeaders, body, diff --git a/lib/services/network/request_helper.dart b/lib/services/network/request_helper.dart new file mode 100644 index 0000000..4e25ff3 --- /dev/null +++ b/lib/services/network/request_helper.dart @@ -0,0 +1 @@ +class RequestHelper {} diff --git a/lib/services/storage/storage.dart b/lib/services/storage/storage.dart new file mode 100644 index 0000000..ec01ccf --- /dev/null +++ b/lib/services/storage/storage.dart @@ -0,0 +1,40 @@ +import 'package:hive/hive.dart'; + +class StorageService { + static Future setValue({ + required String key, + required dynamic value, + required String boxName, + }) async { + final Box box = await Hive.openBox(boxName); + await box.put(key, value); + await box.close(); + } + + static Future getValue({required String key, required String boxName}) async { + final Box box = await Hive.openBox(boxName); + final value = await box.get(key); + await box.close(); + return value; + } + + static Future setBoxData({ + required Map data, + required String boxName, + }) async { + final Box box = await Hive.openBox(boxName); + await box.putAll(data); + await box.close(); + } + + static Future getBoxData({required String boxName}) async { + final Box box = await Hive.openBox(boxName); + await box.close(); + return box.toMap(); + } + + static Future boxExists({required String boxName}) async { + final bool result = await Hive.boxExists(boxName); + return result; + } +} diff --git a/lib/utils/actions_sheet.dart b/lib/utils/actions_sheet.dart index 50b2a2a..ee324d4 100644 --- a/lib/utils/actions_sheet.dart +++ b/lib/utils/actions_sheet.dart @@ -24,8 +24,8 @@ class ActionSheetUtils { static AnnotatedRegion _customSystemOverlayStyle({required Widget child}) { return AnnotatedRegion( value: DesignConfig.systemUiOverlayStyle.copyWith( - systemNavigationBarColor: Colors.black45, - ), + // systemNavigationBarColor: Colors.black45, + ), child: child, ); } diff --git a/lib/utils/date_time.dart b/lib/utils/date_time.dart new file mode 100644 index 0000000..f36466d --- /dev/null +++ b/lib/utils/date_time.dart @@ -0,0 +1,8 @@ +import 'package:flutter/material.dart'; + +class DateTimeUtils { + static TimeOfDay stringToTimeOfDay(String input) => TimeOfDay( + hour: int.parse(input.split(':')[0]), + minute: int.parse(input.split(':')[1]), + ); +} diff --git a/lib/widgets/didvan/app_bar.dart b/lib/widgets/didvan/app_bar.dart index c14902d..d9d244c 100644 --- a/lib/widgets/didvan/app_bar.dart +++ b/lib/widgets/didvan/app_bar.dart @@ -1,4 +1,3 @@ -import 'package:didvan/config/design_config.dart'; import 'package:didvan/config/theme_data.dart'; import 'package:didvan/models/view/app_bar_data.dart'; import 'package:didvan/widgets/didvan/text.dart'; diff --git a/lib/widgets/didvan/scaffold.dart b/lib/widgets/didvan/scaffold.dart index 450b1d2..69fa6d7 100644 --- a/lib/widgets/didvan/scaffold.dart +++ b/lib/widgets/didvan/scaffold.dart @@ -2,7 +2,7 @@ import 'package:didvan/models/view/app_bar_data.dart'; import 'package:didvan/widgets/didvan/app_bar.dart'; import 'package:flutter/material.dart'; -class DidvanScaffold extends StatefulWidget { +class DidvanScaffold extends StatelessWidget { final List? slivers; final AppBarData appBarData; final bool hasPadding; @@ -13,20 +13,6 @@ class DidvanScaffold extends StatefulWidget { this.hasPadding = true, }) : super(key: key); - @override - State createState() => _DidvanScaffoldState(); -} - -class _DidvanScaffoldState extends State { - bool _isElevated = false; - final ScrollController _scrollController = ScrollController(); - - @override - void initState() { - _scrollController.addListener(() => _handleAppBarElevation()); - super.initState(); - } - @override Widget build(BuildContext context) { return Scaffold( @@ -36,24 +22,23 @@ class _DidvanScaffoldState extends State { backgroundColor: Theme.of(context).backgroundColor, automaticallyImplyLeading: false, pinned: true, - flexibleSpace: DidvanAppBar(appBarData: widget.appBarData), + flexibleSpace: DidvanAppBar(appBarData: appBarData), ), - if (widget.slivers != null) ...widget.slivers! + const SliverToBoxAdapter( + child: SizedBox(height: 16), + ), + if (slivers != null) + SliverPadding( + padding: const EdgeInsets.symmetric(horizontal: 16), + sliver: SliverList( + delegate: SliverChildBuilderDelegate( + (_, index) => slivers![index], + childCount: slivers!.length, + ), + ), + ), ], ), ); } - - void _handleAppBarElevation() { - if (_scrollController.position.pixels > kToolbarHeight && !_isElevated) { - setState(() { - _isElevated = true; - }); - } - if (_scrollController.position.pixels < kToolbarHeight && _isElevated) { - setState(() { - _isElevated = false; - }); - } - } } diff --git a/lib/widgets/loading_indicators.dart b/lib/widgets/loading_indicators.dart new file mode 100644 index 0000000..a47f241 --- /dev/null +++ b/lib/widgets/loading_indicators.dart @@ -0,0 +1 @@ +import 'package:flutter/material.dart'; diff --git a/lib/widgets/logos/didvan_horizontal_logo.dart b/lib/widgets/logos/didvan_horizontal_logo.dart index 19c2aaf..e9631d6 100644 --- a/lib/widgets/logos/didvan_horizontal_logo.dart +++ b/lib/widgets/logos/didvan_horizontal_logo.dart @@ -1,11 +1,12 @@ import 'package:didvan/constants/assets.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_svg/svg.dart'; class DidvanVerticalLogo extends StatelessWidget { const DidvanVerticalLogo({Key? key}) : super(key: key); @override Widget build(BuildContext context) { - return Image.asset(Assets.verticalLogoWithText); + return SvgPicture.asset(Assets.verticalLogoWithText); } } diff --git a/lib/widgets/logos/didvan_vertical_logo.dart b/lib/widgets/logos/didvan_vertical_logo.dart index 19e640e..4f5637a 100644 --- a/lib/widgets/logos/didvan_vertical_logo.dart +++ b/lib/widgets/logos/didvan_vertical_logo.dart @@ -1,11 +1,12 @@ import 'package:didvan/constants/assets.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_svg/svg.dart'; class DidvanHorizontalLogo extends StatelessWidget { const DidvanHorizontalLogo({Key? key}) : super(key: key); @override Widget build(BuildContext context) { - return Image.asset(Assets.horizontalLogoWithText); + return SvgPicture.asset(Assets.horizontalLogoWithText); } } diff --git a/lib/widgets/state_handler.dart b/lib/widgets/state_handler.dart new file mode 100644 index 0000000..0fc9a6f --- /dev/null +++ b/lib/widgets/state_handler.dart @@ -0,0 +1,48 @@ +import 'package:didvan/models/enums.dart'; +import 'package:didvan/providers/core_provider.dart'; +import 'package:flutter/material.dart'; + +class StateHandler extends StatelessWidget { + final T state; + final Widget Function(BuildContext context, T state) builder; + final VoidCallback? onRefresh; + final bool enableCustomLoadingIndicator; + final Color? customLoadingIndicatorColor; + final bool enableEmptyState; + final Widget? emptyState; + final double topPadding; + const StateHandler({ + Key? key, + required this.builder, + this.emptyState, + this.enableCustomLoadingIndicator = false, + this.enableEmptyState = false, + this.onRefresh, + this.topPadding = 0, + this.customLoadingIndicatorColor, + required this.state, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + if (enableEmptyState && state.appState == AppState.idle) { + return Container( + padding: EdgeInsets.only(top: topPadding), + alignment: Alignment.center, + child: SingleChildScrollView( + child: emptyState ?? const Text('Custom Widget Required!'), + ), + ); + } + switch (state.appState) { + case AppState.idle: + return builder(context, state); + case AppState.busy: + return const CircularProgressIndicator(); + case AppState.failed: + return enableCustomLoadingIndicator ? emptyState! : Container(); + default: + return Container(); + } + } +} diff --git a/pubspec.lock b/pubspec.lock index e771f17..cecec2c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -64,6 +64,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.4" + day_night_time_picker: + dependency: "direct main" + description: + name: day_night_time_picker + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3+1" fake_async: dependency: transitive description: @@ -71,6 +78,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.2.0" + ffi: + dependency: transitive + description: + name: ffi + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.2" + file: + dependency: transitive + description: + name: file + url: "https://pub.dartlang.org" + source: hosted + version: "6.1.2" flutter: dependency: "direct main" description: flutter @@ -95,6 +116,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.5" + flutter_spinkit: + dependency: "direct main" + description: + name: flutter_spinkit + url: "https://pub.dartlang.org" + source: hosted + version: "5.1.0" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" flutter_test: dependency: "direct dev" description: flutter @@ -203,6 +238,76 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.8.0" + path_drawing: + dependency: transitive + description: + name: path_drawing + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + path_parsing: + dependency: transitive + description: + name: path_parsing + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + path_provider: + dependency: "direct main" + description: + name: path_provider + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.8" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.9" + path_provider_ios: + dependency: transitive + description: + name: path_provider_ios + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.7" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.4" + path_provider_macos: + dependency: transitive + description: + name: path_provider_macos + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.4" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.4" + petitparser: + dependency: transitive + description: + name: petitparser + url: "https://pub.dartlang.org" + source: hosted + version: "4.4.0" pin_code_fields: dependency: "direct main" description: @@ -210,6 +315,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "7.3.0" + platform: + dependency: transitive + description: + name: platform + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.0" plugin_platform_interface: dependency: transitive description: @@ -217,6 +329,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.2" + process: + dependency: transitive + description: + name: process + url: "https://pub.dartlang.org" + source: hosted + version: "4.2.4" provider: dependency: "direct main" description: @@ -292,6 +411,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.1" + win32: + dependency: transitive + description: + name: win32 + url: "https://pub.dartlang.org" + source: hosted + version: "2.3.2" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.0" + xml: + dependency: transitive + description: + name: xml + url: "https://pub.dartlang.org" + source: hosted + version: "5.3.1" sdks: dart: ">=2.14.0 <3.0.0" flutter: ">=2.5.0" diff --git a/pubspec.yaml b/pubspec.yaml index aac10b9..e070249 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -41,6 +41,10 @@ dependencies: rive: ^0.7.33 hive: ^2.0.5 image_picker: ^0.8.4+4 + day_night_time_picker: ^1.0.3+1 + path_provider: ^2.0.8 + flutter_spinkit: ^5.1.0 + flutter_svg: ^1.0.0 dev_dependencies: flutter_test: @@ -66,15 +70,24 @@ flutter: # To add assets to your application, add an assets section, like this: assets: - - lib/assets/images/logos/logo-v-t.png - - lib/assets/images/logos/logo-h-t.png - - lib/assets/images/categories/business.png - - lib/assets/images/categories/economic.png - - lib/assets/images/categories/enviromental.png - - lib/assets/images/categories/political.png - - lib/assets/images/categories/social.png - - lib/assets/images/categories/tech.png - - lib/assets/animations/indicator.riv + - lib/assets/images/logos/logo-vertical-dark.svg + - lib/assets/images/logos/logo-vertical-light.svg + - lib/assets/images/logos/logo-horizontal-dark.svg + - lib/assets/images/logos/logo-horizontal-light.svg + - lib/assets/images/categories/business-light.svg + - lib/assets/images/categories/economic-light.svg + - lib/assets/images/categories/enviromental-light.svg + - lib/assets/images/categories/political-light.svg + - lib/assets/images/categories/social-light.svg + - lib/assets/images/categories/tech-light.svg + - lib/assets/images/categories/business-dark.svg + - lib/assets/images/categories/economic-dark.svg + - lib/assets/images/categories/enviromental-dark.svg + - lib/assets/images/categories/political-dark.svg + - lib/assets/images/categories/social-dark.svg + - lib/assets/images/categories/tech-dark.svg + - lib/assets/images/themes/light-theme.svg + - lib/assets/images/themes/dark-theme.svg - lib/assets/animations/indicator.riv