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';