diff --git a/assets/icons/navigation/icon_contacts.svg b/assets/icons/navigation/icon_contacts.svg new file mode 100644 index 0000000..9237774 --- /dev/null +++ b/assets/icons/navigation/icon_contacts.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/navigation/icon_contacts_outline.svg b/assets/icons/navigation/icon_contacts_outline.svg new file mode 100644 index 0000000..53992dc --- /dev/null +++ b/assets/icons/navigation/icon_contacts_outline.svg @@ -0,0 +1,3 @@ + + + diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist index 9625e10..7c56964 100644 --- a/ios/Flutter/AppFrameworkInfo.plist +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 11.0 + 12.0 diff --git a/ios/Podfile b/ios/Podfile index 88359b2..279576f 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '11.0' +# platform :ios, '12.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 9c48a81..552543e 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -205,7 +205,7 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { diff --git a/lib/view/email_list/email_list.dart b/lib/features/email_list/email_list.dart similarity index 100% rename from lib/view/email_list/email_list.dart rename to lib/features/email_list/email_list.dart diff --git a/lib/view/email_list/email_list_screen.dart b/lib/features/email_list/email_list_screen.dart similarity index 100% rename from lib/view/email_list/email_list_screen.dart rename to lib/features/email_list/email_list_screen.dart diff --git a/lib/view/email_list/view/attachment_icon.dart b/lib/features/email_list/view/attachment_icon.dart similarity index 100% rename from lib/view/email_list/view/attachment_icon.dart rename to lib/features/email_list/view/attachment_icon.dart diff --git a/lib/view/email_list/view/attachments.dart b/lib/features/email_list/view/attachments.dart similarity index 100% rename from lib/view/email_list/view/attachments.dart rename to lib/features/email_list/view/attachments.dart diff --git a/lib/view/email_list/view/email_list_item.dart b/lib/features/email_list/view/email_list_item.dart similarity index 100% rename from lib/view/email_list/view/email_list_item.dart rename to lib/features/email_list/view/email_list_item.dart diff --git a/lib/view/email_list/view/email_list_view.dart b/lib/features/email_list/view/email_list_view.dart similarity index 100% rename from lib/view/email_list/view/email_list_view.dart rename to lib/features/email_list/view/email_list_view.dart diff --git a/lib/view/email_list/view/favorite_icon.dart b/lib/features/email_list/view/favorite_icon.dart similarity index 100% rename from lib/view/email_list/view/favorite_icon.dart rename to lib/features/email_list/view/favorite_icon.dart diff --git a/lib/view/main/main_screen.dart b/lib/features/main/main_screen.dart similarity index 100% rename from lib/view/main/main_screen.dart rename to lib/features/main/main_screen.dart diff --git a/lib/view/news/news_screen.dart b/lib/features/news/news_screen.dart similarity index 100% rename from lib/view/news/news_screen.dart rename to lib/features/news/news_screen.dart diff --git a/lib/view/news/view/news_item_view.dart b/lib/features/news/view/news_item_view.dart similarity index 100% rename from lib/view/news/view/news_item_view.dart rename to lib/features/news/view/news_item_view.dart diff --git a/lib/view/news/view/news_trending_list.dart b/lib/features/news/view/news_trending_list.dart similarity index 100% rename from lib/view/news/view/news_trending_list.dart rename to lib/features/news/view/news_trending_list.dart diff --git a/lib/view/settings/settings.dart b/lib/features/settings/settings.dart similarity index 100% rename from lib/view/settings/settings.dart rename to lib/features/settings/settings.dart diff --git a/lib/view/settings/settings_screen.dart b/lib/features/settings/settings_screen.dart similarity index 100% rename from lib/view/settings/settings_screen.dart rename to lib/features/settings/settings_screen.dart diff --git a/lib/view/settings/view/setting_cell.dart b/lib/features/settings/view/setting_cell.dart similarity index 100% rename from lib/view/settings/view/setting_cell.dart rename to lib/features/settings/view/setting_cell.dart diff --git a/lib/view/settings/view/theme_dialog_cell.dart b/lib/features/settings/view/theme_dialog_cell.dart similarity index 100% rename from lib/view/settings/view/theme_dialog_cell.dart rename to lib/features/settings/view/theme_dialog_cell.dart diff --git a/lib/view/splash_view.dart b/lib/features/splash_view.dart similarity index 100% rename from lib/view/splash_view.dart rename to lib/features/splash_view.dart diff --git a/lib/view/view.dart b/lib/features/view.dart similarity index 100% rename from lib/view/view.dart rename to lib/features/view.dart diff --git a/lib/generated/assets.gen.dart b/lib/generated/assets.gen.dart index d109ca7..7c3067c 100644 --- a/lib/generated/assets.gen.dart +++ b/lib/generated/assets.gen.dart @@ -21,6 +21,12 @@ class $GoogleFontsGen { List get values => [robotoMedium]; } +class $AssetsIconsGen { + const $AssetsIconsGen(); + + $AssetsIconsNavigationGen get navigation => const $AssetsIconsNavigationGen(); +} + class $AssetsImagesGen { const $AssetsImagesGen(); @@ -93,9 +99,25 @@ class $AssetsImagesGen { ]; } +class $AssetsIconsNavigationGen { + const $AssetsIconsNavigationGen(); + + /// File path: assets/icons/navigation/icon_contacts.svg + SvgGenImage get iconContacts => + const SvgGenImage('assets/icons/navigation/icon_contacts.svg'); + + /// File path: assets/icons/navigation/icon_contacts_outline.svg + SvgGenImage get iconContactsOutline => + const SvgGenImage('assets/icons/navigation/icon_contacts_outline.svg'); + + /// List of all assets + List get values => [iconContacts, iconContactsOutline]; +} + class Assets { Assets._(); + static const $AssetsIconsGen icons = $AssetsIconsGen(); static const $AssetsImagesGen images = $AssetsImagesGen(); static const $GoogleFontsGen googleFonts = $GoogleFontsGen(); } diff --git a/lib/index.dart b/lib/index.dart index 4abf5ad..00a5fb7 100644 --- a/lib/index.dart +++ b/lib/index.dart @@ -1,9 +1,9 @@ export 'bloc/email_list/email_list_bloc.dart'; export 'bloc/theme/theme_cubit.dart'; export 'constants/index.dart'; +export 'features/view.dart'; export 'models/models.dart'; export 'repository/repository.dart'; export 'routes/router.dart'; export 'theme/theme.dart'; -export 'view/view.dart'; export 'widgets/widgets.dart'; diff --git a/lib/models/nav_destination.dart b/lib/models/nav_destination.dart index e705680..bf68046 100644 --- a/lib/models/nav_destination.dart +++ b/lib/models/nav_destination.dart @@ -11,7 +11,7 @@ class NavDestination { final Widget screen; final String label; - final Icon icon; + final Widget icon; final Widget? selectedIcon; final Widget? child; } diff --git a/lib/routes/router.dart b/lib/routes/router.dart index 3b24a21..0ec2a81 100644 --- a/lib/routes/router.dart +++ b/lib/routes/router.dart @@ -1,27 +1,34 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_bloc_app_template/generated/assets.gen.dart'; import 'package:flutter_bloc_app_template/index.dart'; -const List destinations = [ +final List destinations = [ NavDestination( - label: 'Home', - icon: Icon(Icons.home_filled), - selectedIcon: Icon(Icons.home_filled), - screen: EmailListScreen(), + label: 'Contacts', + icon: Assets.icons.navigation.iconContactsOutline.svg(), + selectedIcon: Assets.icons.navigation.iconContacts.svg(), + screen: const EmailListScreen(), ), - NavDestination( + const NavDestination( label: 'News', icon: Icon(Icons.library_books_outlined), selectedIcon: Icon(Icons.library_books), screen: NewsScreen(), ), - NavDestination( + const NavDestination( label: 'Settings', icon: Icon(Icons.settings), selectedIcon: Icon(Icons.settings_applications), screen: SettingsScreen(), ), + const NavDestination( + label: 'Profile', + icon: Icon(Icons.settings), + selectedIcon: Icon(Icons.settings_applications), + screen: SettingsScreen(), + ), ]; class Routes { diff --git a/pubspec.yaml b/pubspec.yaml index 0a46ae3..3683149 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -66,6 +66,7 @@ flutter: assets: # Add assets from the images directory to the application. - assets/images/ + - assets/icons/navigation/ - google_fonts/ fonts: - family: Roboto diff --git a/test/view/email_list/email_list_view_test.dart b/test/view/email_list/email_list_view_test.dart index e5a55b8..c7ccff1 100644 --- a/test/view/email_list/email_list_view_test.dart +++ b/test/view/email_list/email_list_view_test.dart @@ -1,9 +1,9 @@ import 'package:bloc_test/bloc_test.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_bloc_app_template/features/email_list/view/attachment_icon.dart'; import 'package:flutter_bloc_app_template/generated/l10n.dart'; import 'package:flutter_bloc_app_template/index.dart'; -import 'package:flutter_bloc_app_template/view/email_list/view/attachment_icon.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:mocktail/mocktail.dart'; diff --git a/test/view/settings/settings_test.dart b/test/view/settings/settings_test.dart index 2ec70d3..0ff7979 100644 --- a/test/view/settings/settings_test.dart +++ b/test/view/settings/settings_test.dart @@ -2,9 +2,9 @@ import 'package:bloc_test/bloc_test.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc_app_template/bloc/theme/app_theme.dart'; +import 'package:flutter_bloc_app_template/features/settings/settings.dart'; import 'package:flutter_bloc_app_template/generated/l10n.dart'; import 'package:flutter_bloc_app_template/index.dart'; -import 'package:flutter_bloc_app_template/view/settings/settings.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:mocktail/mocktail.dart';