Skip to content

Commit af042a2

Browse files
Merge pull request #11 from leandro-mancini/feat/splash/create-page
Feat/splash/create page
2 parents 4e49ea2 + f8d5f86 commit af042a2

23 files changed

+714
-10
lines changed

.github/workflows/CI.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,4 @@ jobs:
8989
with:
9090
channel: 'stable'
9191
- name: Flutter test
92-
run: npx nx run-many --target=test --all=true --exclude=flutter-api,flutter-episodes,flutter-characters,flutter-suflex
92+
run: npx nx run-many --target=test --all=true --exclude=flutter-api,flutter-episodes,flutter-characters,flutter-suflex,flutter-splash
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import 'package:flutter_characters/flutter_characters.dart';
22
import 'package:flutter_episodes/flutter_episodes.dart';
33
import 'package:flutter_modular/flutter_modular.dart';
4+
import 'package:flutter_splash/main.dart';
45

56
class AppModule extends Module {
67
@override
78
List<ModularRoute> get routes => [
8-
ModuleRoute('/', module: CharactersModule()),
9+
ModuleRoute('/', module: SplashModule()),
10+
ModuleRoute('/characters', module: CharactersModule()),
911
ModuleRoute('/episode', module: EpisodesModule())
1012
];
1113
}

apps/flutter/suflex/pubspec.lock

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,13 @@ packages:
139139
relative: true
140140
source: path
141141
version: "0.0.1"
142+
flutter_splash:
143+
dependency: "direct main"
144+
description:
145+
path: "../../../libs/flutter/splash"
146+
relative: true
147+
source: path
148+
version: "1.0.0+1"
142149
flutter_svg:
143150
dependency: transitive
144151
description:

apps/flutter/suflex/pubspec.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ dependencies:
4141
path: ../../../libs/flutter/episodes
4242
flutter_shared:
4343
path: ../../../libs/flutter/shared
44+
flutter_splash:
45+
path: ../../../libs/flutter/splash
4446

4547

4648
# The following adds the Cupertino Icons font to your application.

libs/flutter/characters/lib/src/characters_controller.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ abstract class CharactersControllerBase with Store {
2121

2222
@action
2323
getAllCharacters() async {
24+
hasCharacters = false;
2425
allCharacters = await characterService.getAllCharacters();
2526
characters = allCharacters;
2627
hasCharacters = true;

libs/flutter/characters/lib/src/characters_page.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class _CharactersPageState extends State<CharactersPage> {
4040
searchController: searchValueController,
4141
textInputAction: TextInputAction.search,
4242
onSubmitted: (value) {
43-
Modular.to.pushNamed('/character/search/$value')
43+
Modular.to.pushNamed('/characters/character/search/$value')
4444
.then((value) => charactersController.getAllCharacters());
4545
searchValueController.clear();
4646
},
@@ -51,7 +51,7 @@ class _CharactersPageState extends State<CharactersPage> {
5151
Icons.bookmark_added,
5252
color: Colors.red,
5353
),
54-
onPressed: () => Modular.to.pushNamed('/favorites'),
54+
onPressed: () => Modular.to.pushNamed('/characters/favorites'),
5555
),
5656
IconButton(
5757
icon: const Icon(
@@ -80,7 +80,7 @@ class _CharactersPageState extends State<CharactersPage> {
8080
enabledAction: true,
8181
textButton: 'Buscar',
8282
onPressed: () {
83-
Modular.to.pushNamed('/character/search/${searchValueController.text}')
83+
Modular.to.pushNamed('/characters/character/search/${searchValueController.text}')
8484
.then((value) => charactersController.getAllCharacters());
8585
searchValueController.clear();
8686
},
@@ -98,7 +98,7 @@ class _CharactersPageState extends State<CharactersPage> {
9898
title: charactersController.characters[index].name,
9999
subtitle: charactersController.characters[index].species,
100100
backgroundImage: NetworkImage(charactersController.characters[index].image),
101-
onTap: () => Modular.to.pushNamed('/character/${charactersController.characters[index].id}'),
101+
onTap: () => Modular.to.pushNamed('/characters/character/${charactersController.characters[index].id}'),
102102
);
103103
},
104104
),

libs/flutter/characters/lib/src/pages/favorites/favorites_page.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ class _FavoritesPageState extends State<FavoritesPage> {
3939
searchController: searchValueController,
4040
textInputAction: TextInputAction.search,
4141
onChanged: ((value) => favoriteController.getFilteredToFavorite(value)),
42+
onSubmitted: (value) => favoriteController.getFilteredToFavorite(value),
4243
onPressedLeadingIcon: () => Modular.to.pop(),
4344
),
4445
body: buildBody(),
@@ -76,7 +77,7 @@ class _FavoritesPageState extends State<FavoritesPage> {
7677
subtitle: favoriteController.favorites[index].species,
7778
backgroundImage: NetworkImage(favoriteController.favorites[index].image),
7879
onTap: () {
79-
Modular.to.pushNamed('/character/${favoriteController.favorites[index].id}')
80+
Modular.to.pushNamed('/characters/character/${favoriteController.favorites[index].id}')
8081
.then((value) => favoriteController.getFavorites());
8182

8283
searchValueController.clear();

libs/flutter/characters/lib/src/pages/search/search_controller.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ abstract class SearchControllerBase with Store {
2121

2222
@action
2323
getFilteredCharacters(String name) async {
24-
hasCharacters = true;
24+
hasCharacters = false;
2525
allCharacters = await characterService.getFilteredCharacters(CharacterFilters(name: name));
2626
characters = allCharacters;
2727
hasCharacters = true;

libs/flutter/characters/lib/src/pages/search/search_page.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ class _SearchPageState extends State<SearchPage> {
7070
title: searchController.characters[index].name,
7171
subtitle: searchController.characters[index].species,
7272
backgroundImage: NetworkImage(searchController.characters[index].image),
73-
onTap: () => Modular.to.pushNamed('/character/${searchController.characters[index].id}'),
73+
onTap: () => Modular.to.pushNamed('/characters/character/${searchController.characters[index].id}'),
7474
);
7575
},
7676
),

libs/flutter/episodes/lib/src/episodes_page.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ class _EpisodesPageState extends State<EpisodesPage> {
174174
title: episodesController.characters[index].name,
175175
subtitle: episodesController.characters[index].species,
176176
backgroundImage: NetworkImage(episodesController.characters[index].image),
177-
onTap: () => Modular.to.pushNamed('/character/${episodesController.characters[index].id}'),
177+
onTap: () => Modular.to.pushNamed('/characters/character/${episodesController.characters[index].id}'),
178178
);
179179
},
180180
)

libs/flutter/splash/.gitignore

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
.DS_Store
2+
.dart_tool/
3+
4+
.packages
5+
.pub/
6+
7+
.idea/
8+
.vagrant/
9+
.sconsign.dblite
10+
.svn/
11+
12+
migrate_working_dir/
13+
14+
*.swp
15+
profile
16+
17+
DerivedData/
18+
19+
.generated/
20+
21+
*.pbxuser
22+
*.mode1v3
23+
*.mode2v3
24+
*.perspectivev3
25+
26+
!default.pbxuser
27+
!default.mode1v3
28+
!default.mode2v3
29+
!default.perspectivev3
30+
31+
xcuserdata
32+
33+
*.moved-aside
34+
35+
*.pyc
36+
*sync/
37+
Icon?
38+
.tags*
39+
40+
build/
41+
.android/
42+
.ios/
43+
.flutter-plugins
44+
.flutter-plugins-dependencies
45+
46+
# Symbolication related
47+
app.*.symbols
48+
49+
# Obfuscation related
50+
app.*.map.json

libs/flutter/splash/.metadata

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# This file tracks properties of this Flutter project.
2+
# Used by Flutter tool to assess capabilities and perform upgrades etc.
3+
#
4+
# This file should be version controlled and should not be manually edited.
5+
6+
version:
7+
revision: f1875d570e39de09040c8f79aa13cc56baab8db1
8+
channel: stable
9+
10+
project_type: module

libs/flutter/splash/README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# flutter_splash
2+
3+
A new Flutter module project.
4+
5+
## Getting Started
6+
7+
For help getting started with Flutter development, view the online
8+
[documentation](https://flutter.dev/).
9+
10+
For instructions integrating Flutter modules to your existing applications,
11+
see the [add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
include: package:flutter_lints/flutter.yaml
2+
3+
# Additional information about this file can be found at
4+
# https://dart.dev/guides/language/analysis-options
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module type="JAVA_MODULE" version="4">
3+
<component name="NewModuleRootManager" inherit-compiler-output="true">
4+
<exclude-output />
5+
<content url="file://$MODULE_DIR$">
6+
<sourceFolder url="file://$MODULE_DIR$/lib" isTestSource="false" />
7+
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
8+
<excludeFolder url="file://$MODULE_DIR$/.dart_tool" />
9+
<excludeFolder url="file://$MODULE_DIR$/.idea" />
10+
<excludeFolder url="file://$MODULE_DIR$/.pub" />
11+
<excludeFolder url="file://$MODULE_DIR$/build" />
12+
</content>
13+
<orderEntry type="sourceFolder" forTests="false" />
14+
<orderEntry type="library" name="Dart SDK" level="project" />
15+
<orderEntry type="library" name="Flutter Plugins" level="project" />
16+
<orderEntry type="library" name="Dart Packages" level="project" />
17+
</component>
18+
</module>
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module type="JAVA_MODULE" version="4">
3+
<component name="FacetManager">
4+
<facet type="android" name="Android">
5+
<configuration>
6+
<option name="ALLOW_USER_CONFIGURATION" value="false" />
7+
<option name="GEN_FOLDER_RELATIVE_PATH_APT" value="/.android/gen" />
8+
<option name="GEN_FOLDER_RELATIVE_PATH_AIDL" value="/.android/gen" />
9+
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/.android/AndroidManifest.xml" />
10+
<option name="RES_FOLDER_RELATIVE_PATH" value="/.android/res" />
11+
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/.android/assets" />
12+
<option name="LIBS_FOLDER_RELATIVE_PATH" value="/.android/libs" />
13+
<option name="PROGUARD_LOGS_FOLDER_RELATIVE_PATH" value="/.android/proguard_logs" />
14+
</configuration>
15+
</facet>
16+
</component>
17+
<component name="NewModuleRootManager" inherit-compiler-output="true">
18+
<exclude-output />
19+
<content url="file://$MODULE_DIR$/.android">
20+
<sourceFolder url="file://$MODULE_DIR$/.android/Flutter/src/main/java" isTestSource="false" />
21+
<sourceFolder url="file://$MODULE_DIR$/.android/gen" isTestSource="false" generated="true" />
22+
</content>
23+
<orderEntry type="jdk" jdkName="Android API 29 Platform" jdkType="Android SDK" />
24+
<orderEntry type="sourceFolder" forTests="false" />
25+
<orderEntry type="library" name="Flutter for Android" level="project" />
26+
</component>
27+
</module>

libs/flutter/splash/lib/main.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
library flutter_splash;
2+
3+
export './src/splash_module.dart';
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import 'package:flutter_modular/flutter_modular.dart';
2+
import 'package:flutter_splash/src/splash_page.dart';
3+
4+
class SplashModule extends Module {
5+
@override
6+
List<ModularRoute> get routes => [
7+
ChildRoute('/', child: (context, args) => const SplashPage()),
8+
];
9+
}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:flutter_modular/flutter_modular.dart';
3+
import 'package:flutter_shared/flutter_shared.dart';
4+
5+
class SplashPage extends StatefulWidget {
6+
const SplashPage({Key? key}) : super(key: key);
7+
8+
@override
9+
State<SplashPage> createState() => _SplashPageState();
10+
}
11+
12+
class _SplashPageState extends State<SplashPage> with SingleTickerProviderStateMixin {
13+
late AnimationController controller;
14+
late Animation<double> animation;
15+
16+
@override
17+
void initState() {
18+
super.initState();
19+
20+
controller = AnimationController(
21+
duration: const Duration(seconds: 2),
22+
vsync: this,
23+
);
24+
25+
controller.forward().whenComplete(() {
26+
Modular.to.pushReplacementNamed('/characters');
27+
});
28+
29+
animation = CurvedAnimation(
30+
parent: controller,
31+
curve: Curves.fastOutSlowIn,
32+
);
33+
}
34+
35+
@override
36+
Widget build(BuildContext context) {
37+
return Scaffold(
38+
backgroundColor: Colors.white,
39+
body: Center(
40+
child: GestureDetector(
41+
child: SizeTransition(
42+
sizeFactor: animation,
43+
axis: Axis.horizontal,
44+
axisAlignment: -1,
45+
child: Center(
46+
child: Column(
47+
mainAxisAlignment: MainAxisAlignment.center,
48+
children: [
49+
Container(
50+
width: 150,
51+
height: 150,
52+
decoration: const BoxDecoration(
53+
image: DecorationImage(
54+
image: AssetImage(Assets.imgRickMorty),
55+
fit: BoxFit.cover,
56+
)),
57+
),
58+
const Text(
59+
'The Rick and Morty',
60+
style: TextStyle(
61+
fontSize: 20,
62+
fontWeight: FontWeight.bold,
63+
color: Colors.black
64+
),
65+
)
66+
],
67+
),
68+
),
69+
),
70+
),
71+
),
72+
);
73+
}
74+
}

0 commit comments

Comments
 (0)